본문 바로가기

Programming Practice/Spring

Dispatcher Servlet 설명

1. Dispatcher Servlet 이란?

   - dispatch : 보내다

   - dispatch request to the correct controller's method


2. DispatcherServlet-servlet.xml

   - Dispatcher Servlet 이 동작할 때 필요한 설정 정보를 정의

   - WEB-INF 아래 위치

   - 기본적인 설정 정보

 <mvc:annotation-driven /> 

 RequestMapping annotation을 사용하겠다

 <mvc:annotation-driven enable-matrix-variables="true" />

 matrix-variables를 활용하겠다.

 <mvc:resources location="/resources/" mapping="/resource/**" />

 webapp/resources 아래 파일들을 view 에서 static 요소로 활용하겠다.

 <mvc:interceptors>

<bean class="com.packt.프로젝트명.interceptor.PerformanceMonitorInterceptor" />

</mvc:interceptors>

 controller를 호출하기 전, view를 return하기 전에 특정 로직을 수행하는 interceptor를 사용하겠다.

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/views/" />

<property name="suffix" value=".jsp" />

</bean>

 예를 들어 controller 에서 return "index"; 를 하면, WEB-INF/views/index.jsp 를 호출하겠다.

 <context:component-scan base-package="~">

 아래 방식을 사용하겠다.

1) Controller, Service, Repository class에 각각 @Controller, @Service, @Repository annoation을 붙인다.

2) Service, Repository 에 대해서는 객체를 생성하지 않고, @Autowired annotation과 함께 reference 변수를 선언하는 것만으로도 Service, Repository를 사용할 수 있다.


3. xml 파일의 이름과 위치 변경 가능

   - 위치와 이름 변경 시 web.xml 의 <servlet></servlet> 사이에 아래와 같이 설정한다.

<init-param>

   <param-name>contextConfigLocation</param-name>

   <param-value>/WEB-INF/위치/이름.xml</param-value>

</init-param>