스프링 MVC는 스프링의 SUB 프로젝트
스프링은 하나의 기능을 위해 만들어진 것이 아닌, 여러 서브프로젝트들을 합친 하나의 코어
프로젝트의 로딩구조
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
context-param안에는 root-context의 경로가 설정되어있고, 리스너에는 ContextLoaderListener이 등록되어 있다. 그러므로 해당 리스너는 웹이 구동될 때, 가장 먼저 로그를 기록하면서 구동된다.
이 후 root-context가 처리되면, 해당 파일에 있는 bean설정이 동작한다. bean은 스프링의 context에 생성되고, 객체간 의존성이 처리된다. 이후 DispatcherServlet - 서블릿 관련 설정이 동작한다.
<!-- Processes application requests -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Dispatcher Servlet는 스프링 MVC에서 가장 핵심적인 역할이다.
내부적으로 웹 관련 처리의 준비작업을 servlet-context파일을 사용하며 진행한다.
https://tjsdudkim.tistory.com/114 그대로 설명.
스프링 MVC를 이용하는 경우에 servlet-context설정을 해야한다
servlet이란?
Servlet contanier이란?
JSP