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>
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" />