[Spring Boot] ServletInitializer

김의진·2021년 7월 20일
0
post-thumbnail

스프링부트 war 프로젝트 생성시 SpringBootServletInitializer를 상속받는 ServletInitializer 클래스 파일이 생성된다.

해당 파일의 용도는 무엇일까?

스프링 부트 웹 애플리케이션을 배포할 때 jar를 이용하기도 하지만, 전통적인 방식인 war 파일로 배포하는 경우가 있다.
이때 SpringBootServletInitializer를 상속받아 배포하게 된다.

Why?

스프링 웹 애플리케이션이 Tomcat에서 동작되기 위해서는 Web.xml에 ApplicationContext 등록해줘야한다.
Apache Tomcat이 구동될때 web.xml을 읽어 웹 애플리케이션을 구성하기 때문이다.

Servlet 3.0으로 스펙이 업데이트 되면서 web.xml 설정을 WebApplicationInitializer 인터페이스를 구현하여 대신 할 수 있게 되었고 이를 구현한 SpringBootServletInitializer를 상속받아 외부 Tomcat에서 스프링부트가 실행되도록 해준다.

SpringBootServletInitializer를 상속 받는 다는 것은 tomcat 같은 Servlet Container 환경에서Spring Boot 애플리케이션 동작 가능 하도록 웹 애플리케이션 컨텍스트를 구성한다는 의미.

profile
3년차 Spring, Java 주니어 백엔드 개발자입니다.

0개의 댓글