[projectName]-servlet.xml 파일에 추가 하도록 하자.
Resolve 1. 모든 요청에 따른 Interceptor 적용
<!-- Interceptor -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="kr.co.whitelife.WhitelifeInterceptor"/>
<ref bean="kr.co.whitelife.BlacklifeInterceptor"/>
</list>
</property>
</bean>
모든 요청에 대한 응답을 해주는 DefaultAnnotationHandlerMapping을 이용 한다. 다 수의 Interceptor를 순차적으로 적용이 가능하다.
Resolve 2. 일부 요청에 따른 Interceptor 적용
<!-- Interceptor -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/test">WhitelifeController</prop>
</props>
</property>
<property name="interceptors">
<ref bean="WhitelifeInterceptor"/>
</property>
</bean>
RequestUri에 따른 Controller 분기가 가능한 SimpleUrlHandlerMapping을 이용 했다. Resolve 1 방법과 같은 방법으로 Interceptor을 적용이 가능하다.
Resolve 3. mvc 태그를 이용 하는 방법
<mvc:interceptors>
<bean class="kr.co.whitelife.WhitelifeInterceptor"/>
<bean class="kr.co.whitelife.Blacklifenterceptor"/>
<mvc:interceptor>
<mvc:mapping path="/test/*"/>
<bean class="kr.co.whitelife.WhitelifeInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
Spring 3.x 버전 이후로는 mvc 전용 태그를 지원 한다. 2~3번째 줄에 있는 부분은 Resolve 1 방법, 4~7번째 줄에 있는 부분은 Resolve 2 방법과 같다.
Interceptor Class Sample
/**
* Sample Interceptor
* @author whitelife
* @since 2013-01-31
*/
@Controller("TestInterceptor")
public class TestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("TestInterceptor{preHandle}............................................ start");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("TestInterceptor{postHandle}............................................ end");
}
}
Interceptor도 Controller과 마찬가지로 RequestUri에 따라 분기를 하기 때문에 Controller과 같은 동작을 한다. @Controller도 적용이 가능하다.
'Spring' 카테고리의 다른 글
SpringFramework 사용하여 개발 시 유용한 Util (0) | 2014.08.25 |
---|---|
Spring DispatcherServelt HandlerExceptionResolver 적용하기 (0) | 2014.04.30 |
Spring 으로 Junit4 테스트 시 설정 파일을 못 찾는 경우 (0) | 2012.12.07 |
Spring DI(Denpendency Injection) (0) | 2012.11.11 |
Spring Ioc (0) | 2012.11.11 |