Skip to Content
Suffering builds character
아카이브20.spring Hateoas스프링부트2.스프링 부트 프로젝트 생성4. 내장된 서블릿 컨테이너

4. 내장된 서블릿 컨테이너

서블릿 기반의 웹 애플리케이션에서는 서버를 실행하기 위해 먼저 Apache Tomcat과 같은 서블릿 컨테이너를 직접 설정해주어야 했음

스프링 부트에서는 이러한 서블릿 컨테이너를 소스 코드의 형태로 내장(Built-in)하고 있기 때문에 별도로 서블릿 컨테이너를 설정하지 않고도 서버 프로세스를 실행할 수 있음

Note

내장 톰캣(Built-in Tomcat)

스프링 부트 프로젝트에 소스 코드의 형태로 내장된 서블릿 컨테이너 모듈

따라서 아래와 같이 main()를 실행하면 스프링 부트는 내장된 기본 서블릿 컨테이너인 Tomcat을 실행하고 그 위에서 웹 애플리케이션을 실행함

package dev.spring.petclinic; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class PetclinicApplication {     public static void main(String[] args) {         SpringApplication.run(PetclinicApplication.class, args);     } }

Tomcat과 관련된 애플리케이션 서버 실행 로그

... INFO 9500 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http) INFO 9500 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat] INFO 9500 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.75] INFO 9500 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext INFO 9500 --- [  restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3281 ms ... INFO 9500 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path '' INFO 9500 --- [  restartedMain] d.spring.petclinic.PetclinicApplication  : Started PetclinicApplication in 8.973 seconds (JVM running for 9.805)
💡
Tip

이러한 내장 Tomcat은 spring-boot-starter-tomcat 모듈에 구성되어 있으며,
이 tomcat 모듈은 spring-boot-starter-web 모듈 내부에 하위 의존 관계로 포함되어 있음

각 모듈 간 의존 관계는 아래의 명령어를 통해 확인 가능

terminal
mvnw dependency:tree
Last updated on