반응형
SpringBoot를 사용하면 일반적으로 내장Tomcat을 사용한 jar로 배포를 한다.
가끔 상황에 따라서 외장Tomcat으로 war형태로 배포를 진행해야하는 경우가 있는데 이때 SpringBootServletInitializer가 필요하다.
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
외장Tomcat을 사용해서 어플리케이션 실행 시 전통적으로 web.xml 파일을 읽어서 실행을 한다. 그러나 Servlet 3.0부터는 web.xml이 없이 WebApplicationInitializer 인터페이스를 구현해서 대신 할 수 있게됐다.
그리고 SpringBoot에서는 외장Tomcat 사용 시 WebApplicationInitializer를 구현한 SpringBootServletInitializer를 상속 받아서 처리하게 된다.
추가적으로 외장Tomcat으로 어플리케이션을 실행 시 spring-boot-starter-tomcat 의존성 설정을 provided로 변경이 필요한다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
packaging 설정도 jar -> war로 변경해준다.
<packaging>war</packaging>
위와 같이 적용 후 war로 빌드 후 외장 Tomcat으로 배포를 진행하면 된다.
반응형
'개발 > SpringBoot' 카테고리의 다른 글
SpringBoot 설정에 따른 동적 빈 생성 (0) | 2021.12.09 |
---|---|
SpringBoot application.yml 리스트, 객체로 불러오기(@ConfigurationProperties) (0) | 2021.12.09 |
Jacoco 동적 분석 테스트 및 Jenkins 연동 (0) | 2021.12.08 |
java 어플리케이션 실행 시 JVM args(JAVA_OPTS) 적용 (0) | 2021.12.08 |
SpringBoot Jsaypt 사용 application.yml 암호화 (0) | 2021.12.03 |
댓글