import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class BamduleApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(BamduleApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(BamduleApplication.class, args);
}
}
Spring Boot 실행 클래스에서 SpringBootServletInitializer 클래스를 상속 받는 것을 볼 수 있습니다.
SpringBootServletInitializer 클래스를 왜 상속 받아야 할까요?
Spring개발 시 web.xml에 DispatcherServlet을 등록하는 작업이 필요했습니다.
하지만 Servlet 3.0으로 업데이트 되면서 web.xml이 없어도 배포가 가능해졌습니다.
그 이유는 web.xml 설정을 WebApplicationInitializer 인터페이스를 구현하여 대신 할 수 있고,
프로그래밍적으로 Spring IoC 컨테이너를 생성하여 ServletContext에 추가할 수 있도록 변경 되었기 때문입니다.
SpringBootServletInitializer 클래스는 WebApplicationInitializer 인터페이스의 구현체입니다.
결과적으로 SpringBootServletInitializer 상속 한다는 것은 Spring Boot 애플리케이션 동작이 가능 하도록 웹 애플리케이션 컨텍스트(IoC 방식으로 Bean을 관리하는 컨테이너) 구성 한다는 의미입니다.
'IT > Spring' 카테고리의 다른 글
[Spring Boot] @Valid 어노테이션으로 Parameter 검증하기 (0) | 2020.01.10 |
---|---|
[Spring Boot] thymeleaf template layout 사용하기 (5) | 2020.01.08 |
[Spring Boot] @SpringBootApplication 이란? (0) | 2020.01.07 |
[Spring Boot] Spring Boot 사용 및 Thymeleaf 연동 방법 (0) | 2020.01.06 |
[Spring Boot] Logback 설정 방법 (0) | 2020.01.03 |