java/framework

Spring Controller intercepter By 3.0 , annotation

김평범 2012. 7. 6. 17:40

env : Spring3.0, annotation 사용

*Controller 단 모든 method 에서 권한확인 등의 중복작업을 일괄적으로 할수 있다.

필요1. intercepterHandler 구현
필요2. servlet context bean 등록

사용을 위해, 구현된 Controller 에 HandlerInterceptorAdapter 를 extend 한다.

필요1. intercepter controller 작성... 아래의 구성형태로...

package xxx.xxx.xxx

import ...

public class ExampleHandler extends HandlerInterceptorAdapter {
   
    @Override
    public boolean preHandler(HttpServletRequest request,HttpServletResponse response, Object handler) {
    /* preHandler Controller 유입전 실행됨. */
 boolean rtn = false;
 
 // 검증하여 false 인경우는 가급적 Exception 처리

 return rtn
    }
}

* preHandler - Controller 진입전
* postHandler - view forward 전
* afterCompletion - view forward 및 로드 후


필요2. context 에 등록

 <bean id="annotationMapper"
  class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
  <property name="interceptors">
   <list>
    <ref bean="ExampleHandler"/>   </list>
  </property>
  <property name="order" value="1" />
 </bean>

 <bean id="ExampleHandler " class="xxx.xxx.xxx.ExampleHandler" />