내장 톰캣을 가지는 스프링부트는 jar파일로 배포하여 톰캣으로 실행할 수 있다.

Untitled

  1. 서버가 실행되면 web.xml(웹 배포 서술자)을 로딩(메모리에 적재)한다.

  2. web.xml은 ServletContainerRoot-ApplicationContext를 로딩하는 클래스 ContextLoaderListener를 생성한다.

  3. ContextLoaderListener는 모든 서블릿이 공통으로 가져야할 설정 즉, Application Context 단위의 설정인 Root-ApplicaionContext를 로딩한다.

  4. RootApplicationContext에서 로딩된 객체가 스프링 컨테이너에서 실행된다. (DB관련 서비스 등,,)

  5. 클라이언트로부터 서버에 요청이 들어온다.

  6. 요청을 받은 서버는 클라이언트의 요청을 처리하는 DispatcherServlet을 생성한다.

  7. DispatherServlet은 Servlet Context 단위의 설정인 Servlet-ApplicationContext를 로딩한다.

  8. DispatcherServlet은 사용자의 요청을 처리한다.

    스레드를 생성하여 SpringContainer에 IoC로 관리되는 컨트롤러를 탐색하고 실행시킨다(비즈니스 로직 처리). 이후 클리이언트에게 응답할 View를 탐색하고, 응답 데이터와 View를 클라이언트에게 전달한다.


관련문서

내장 톰캣(Tomcat)

web.xml

서블릿 컨테이너 (Servlet Container)

스프링 컨테이너(Spring Container)

DispatherServlet