War vs. Jar 배포상의 차이
@SpringBootApplication
public class SuperApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SuperApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SuperApplication.class);
}
}
보통 SpringBoot 웹 애플리케이션을 배포할 때는 embedded tomcat이 내장된 jar 파일을 이용, 특별한 경우 전통적인 배포 방식인 war 파일로 배포 진행한다.
* 추가 : https://prde.tistory.com/184
상속하는 이유
전통적으로 Spring 웹 애플리케이션을 외부 Tomcat에서 동작하도록 하기 위해 web.xml에 applicationContext를 등록해야한다. Apache Tomcat이(서블릿 컨테이너)이 구동될 때 /WEB-INF 디렉토리에 존재하는 web.xml을 읽어 웹 애플리케이션을 구성하기 때문이다. 근데 web.xml은 WebApplicationInitializer인터페이스를 구현하여 대신할 수 있게 되었고, ServletContext에 Spring IoC 컨테이너를 생성하여 추가할 수 있도록 변경되었다. 이와 비슷하게 SpringBoot 웹 애플리케이션을 외부 Tomcat에서 동작하도록 하기 위해서는 WebApplicationInitializer인터페이스를 구현한 SpringBootSetvletinitializer를 상속하면 된다.
https://serverwizard.tistory.com/165
'Back-end > Spring-핵심& webMVC' 카테고리의 다른 글
Web.xml, DispatcherServlet, ContextLoaderListener 각각의 역할 및 관계 (0) | 2022.12.30 |
---|---|
DTO(DataTransferObject) vs. VO(Value Object) (0) | 2022.12.11 |
Springboot Swagger- SpringSecurity 연결 설정 (0) | 2022.10.11 |
비동기 처리를 위한 ThreadPoolTaskExcutor (0) | 2021.11.14 |
@transactional annotation (0) | 2021.06.08 |