-
톰캣이 서블릿 컨테이너를 부팅하는 과정공부 이야기/Spring 2022. 12. 25. 14:11
start.sh에서 DispatcherServlet 클래스가 생성되는 시점까지
1. init()
- jar 파일 로딩
- jar 대상 : WEB-INF/classes, WEB-INF/lib, jre/ext/lib, CLATHPATH 안에 위치한 class 파일
2. load()
- java reflection을 이용해서 catalina 객체 생성
- server.xml 파일 파싱, 파싱된 XML정보를 기반으로 Object Mapping Tool로 객체를 생성
3. start()
- tomcat filter(=valve)의 실행이 시작하는 시점
- web.xml 파싱
- ServletContainerInitializer 클래스를 톰캣 라이브러리에서 찾는다
- 해당 클래스의 메인 메소드인 onStart()으로 서블릿 컨테이너 실행
- 배포된 war 파일 압축 해제
4. invoke()
- 소켓 바인딩 및 HTTP 1.1 통신(coyote) 직후 실행되는 단계
- 각종 valve 작동
5. service()
- 서블릿(DispatcherServlet 클래스)이 실행되는 단계
1~3 과정을 설명한 문서
https://tomcat.apache.org/tomcat-8.0-doc/architecture/startup/serverStartup.txt
4~5에 해당하는 UML
https://tomcat.apache.org/tomcat-10.0-doc/architecture/requestProcess/request-process.png
'공부 이야기 > Spring' 카테고리의 다른 글
H2 기본 자료형 (0) 2023.12.30 Tomcat - web.xml (0) 2022.12.25 개같은 스프링 <7> (0) 2020.02.07 개같은 스프링 <6> (0) 2020.02.07 개같은 스프링<5> (0) 2020.02.07