본문 바로가기
Category/Spring

[Spring] 스프링의 기본 xml파일들

by developer__Y 2023. 12. 22.

스프링 MVC 패턴의 기본 동작 구조는 다음과 같다.

 

스프링 MVC

스프링 MVC 패턴 동작구조

 

1. 클라이언트로 부터 오는 모든 요청은 DispatcherServlet 이 가장먼저 받게된다. 이러한 구조를 프론트 컨트롤러(Front-Controller)이라고 한다.

 

2. DispatcherServlet이 받은 요청을 Controller에 위임을 하고, 개별 컨트롤러(핸들러)는 해당 컨트롤러에 쓰여진 로직대로 동작을 수행한 결과 값을 Model에 담아 DispatcherServlet에 보내면,  View 템플릿으로 전달하여 클라이언트에게 보낼 화면을 전송한다.

 

이러한 스프링 MVC 구조에 대한 설정 파일은 web.xml , servlet-context.xml , root-context.xml 이 있다.web.xml 은 WAS인 Tomcat과 관련된 설정이고,servlet-context.xml, root-context.xml 은 스프링과 관련된 설정이다.

web.xml

 

WAS(Web Application Server)가 구동되면, Web-INF 폴더내에 있는 web.xml 파일을 읽어, 그에 해당하는 웹 어플리케이션을 설정한다.

바로 이 web.xml 안에 DispatcherServlet 이 있다.

 

 

<servlet> 태그안에 있는 <servlet-class>DispatcherServlet</servlet-class>가 디스패쳐 서블릿이고, 클라이언트로부터 받은 요청을 위임할 핸들러의 경로를 <init-param>을 통해 지정한다. 

 

sevlet-context.xml

 

 

클라이언트로 부터 받은 요청을 WAS에서 web.xml을 통해 DispatcherSevlet이 받고, 이 요청을 스프링 내에서

개별 핸들러인 Controller 할당하기위한 설정을 하는 곳이다.

스프링 설정 파일인 sevlet-context.xml 파일내 ViewResolver 객체를통해  DispatcherSevlet 로부터 받은 요청을 컨트롤러에서 처리한뒤 반환할 view에 대한 경로, 경로명등을 설정한다.

"prefix" + Controller의 리턴값(ex. return "home") + "suffix" 

=> /WEB-INF/views/home.jsp 의 경로로 Model을 담아 view로 보내는 것이다.

 

root-context.xml

 

root-context.xml 은 스프링 MVC 관련 설정중 View단이 아닌 비즈니스 로직(Service,Repository)과 관련된 설정을 한다.

즉, 개발자가 요구되는 웹의 비즈니스 로직과 관련된 설정을 Bean으로 설정하여 손쉽게 의존성을 주입받을수 있도록 한다.