Skip to content

2022 01 13

Crow edited this page Jan 13, 2022 · 5 revisions

실습 외 내용

예제 프로젝트의 로딩구조

프로젝트가 정상적으로 실행되었다면 서버의 구동 시 약간의 로그가 기록됨
이 로그를 이용해서 어떤 과정을 통해서 프로젝트가 실행되는지 엿볼 수 있음
프로젝트 구동 시 관여하는 XML은 web.xml, root-context.xml, servlet-context.xml파일임
이파일중 web.xml은 tomcat 구동과 관련된 설정이고, 나머지 두 파일은 스프링과 관련됨

프로젝트 구동은 web.xml에서 시작함 web.xml의 상단에는 가장 먼저 구동되는
Context Listener가 등록되어있음
<context-param>에는 root-context.xml의 경로가 설정되어 있고, <listener>에는
스프링 MVC의 ContextLoaderListener가 등록되어 있는 것을 볼 수 있음.
ContextLoaderListener는 해당 웹 애플리케이션 구동 시 같이 동작하므로 해당 프로젝트를 실행하면
가장 먼저 로그를 기록하는 것을 볼 수 있음.
root-context.xml이 처리되면 파일에 있는 빈(Bean)설정들이 동작하게 됨.

root-context.xml에 정의된 객체(Bean)들은 스프링 영역(context)안에 생성되고, 객체들 간의 의존성이 처리됨.
root-context.xml이 처리된 후에는 스프링 MVC에서 사용하는 DispatcherServlet이라는 서블릿과 관련된 설정이 동작함.

org.springframework.web.servlet.DispatcherServlet 클래스는 스프링 MVC의 구조에서 가장 핵심적인 역할을 하는 클래스임
내부적으로 웹 관련 처리의 준비 작업을 진행하는데 이때 사용하는 파일이 servlet-context.xml임

로그를 보면 DispatcherServlet에서 XmlWebApplicationContext를 이용해서 servlet-context.xml을 로딩하고 해석하기 시작함.
이 과정에서 등록된 객체(Bean)들은 기존에 만들어진 객체(Bean)들과 같이 연동되게 됨.