Springboot 원리 알아가기
자바의 서블릿 컨테이너(Tomcat)가 실행되고, 스프링 컨테이너도 실행된다. 스프링 프로젝트를 처음 생성했을 때 모습.
main() 메서드 이외엔 크게 볼게 없다, 하지만 정말 그럴까? 보이는게 다가 아니라는게 알기에 @SpringbootApplication 기저에 깔린 여러 동작원리를 살펴보겠습니다. 모든 imports 를 삭제하고, 어노테이션과 SpringApplication 도 삭제하여 main 메서드를 실행하면 아무일도 일어나지 않는다. 톰캣 서블릿 컨테이너와 스프링 컨테이너 모두 실행되지 않은 것을 볼 수 있다. 이제 서블릿 컨테이너를 띄우고, 내부에 서블릿을 추가해보자.
여기서 서블릿이란 서블릿 컨테이너에 들어가는 웹 컴포넌트를 의미한다. 우선 빈(empty) 서블릿 컨테이너를 띄워보자. WebserFactory 를 상속받는 ServletWebFactory 인터페이스가 등장한다. 내부에는 getWebServer() 추상 메서드가 정의돼 있습니다.
getWebServ…