web.xml
웹 애플리케이션의 전반적인 설정을 담당.
Spring의 핵심 서블릿인 DispatcherServlet의 설정이 포함.
(DispatcherServlet의 설정 파일이 servlet-context.xml)
또한, 웹 애플리케이션의 전체적인 설정을 담당하는 ContextLoaderListener 설정도 포함.
(ContextLoaderListener의 설정 파일이 root-context.xml)
root-context.xml
ContextLoaderListener가 관리하는 애플리케이션 컨텍스트에 등록되는 빈들을 설정.
전체 애플리케이션에서 사용되는 공통 빈들을 등록한다.
service, repository, dao...
servlet-context.xml
DispatcherServlet이 관리하는 웹 관련 빈들을 설정.
controller, VeiwResolver, handlermapping, messagesource, interceptor 등 web과 관련된 빈 등록.
서버가 실행하면
web.xml
-> web.xml에 등록된 ContextLoaderListener가 초기화
되며, 이 Listener를 위한 설정 파일로 지정된 root-context.xml
가 실행된다. root-context.xml
에 등록된 빈들이 생성되고, 이들 빈들은 애플리케이션 전체에서 사용될 수 있다.
web.xml에 등록된 DispatcherServlet
이 초기화되며, 이 Servlet을 위한 설정 파일로 지정된 servlet-context.xml
가 실행된다. servlet-context.xml
에 등록된 빈들이 생성되며, 이들 빈들은 웹과 관련된 요청 처리에 사용된다.
servlet-context.xml은 root-context.xml에 등록된 빈을 참조할 수 있지
만, 반대로는 참조할 수 없다. 이를 통해 웹 관련 빈과 비즈니스 로직 관련 빈을 분리하여 관리할 수 있다.