본문 바로가기
Spring/인프런 토비의 Spring Boot

섹션 3-2 [독립 실행형 서블릿 애플리케이션] 서블릿 컨테이너 띄우기

by include_hoany 2024. 5. 30.

서블릿 컨테이너 띄우기

Sprinb Boot에서 Containerless환경을 구현하기 위해 Stand Alone 프로그램에서 서블릿 컨테이너를 직접 설치하지 않고 알아서 띄워주는 작업에 대해 알아보도록 하겠습니다.

 

 

톰켓 컨테이너 시작

톰켓에 어떠한 서블릿도 존재하지 않는 서블릿 컨테이너만 실행하는 코드 구현

package com.tobyspring.tobyspringboot;  
  
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;  
import org.springframework.boot.web.server.WebServer;  
  
public class TobyspringbootApplication {  
  
    public static void main(String[] args) {  
       /*  
          Spring Boot에서 Tomcat Sublet 컨테이너를 내장해서 프로그앰에서 코드로
          쉽게 사용할 수 있도록 제공하는 클래스 TomcatServletWebServerFactory
      */ 
      TomcatServletWebServerFactory serverFactory = new TomcatServletWebServerFactory();  
  
       /*  
          웹서버 서블릿 컨테이너를 생성하는 함수 리턴타입이 디폴트로 설정한
          Tomcat이라는 명칭은 사라지고  WebServer명칭으로 된이유는 스프링 부트가 
          톰캣 외에 제티나 언더토우같은 다양한 서블릿 컨테이너를 지원할 수 있고 
          지원하되 일관된 방식으로 사용할 수 있도록 동작하게할 수 있도록
          추상화 해놨기 때문이다.        
      */
      WebServer webServer = serverFactory.getWebServer();  
  
       /*  
          Servlet 컨테이너 동작 함수
      */
      webServer.start();  
    }

위 코드를 작성후 실행하면 톰캣 컨테이너가 동작되는 부분을 확인할 수 있습니다. 단 현재는 요청에 대한응답을 처리할 수 있는 서블릿을 구현하지 않았기 때문에 404 Not Found오류가 발생합니다.