第一种方式:(自动代理)
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>*Controller</value> </list> </property> <property name="interceptorNames"> <list> <value>loginInterceptor</value> </list> </property>
</bean>
第二种方式:(注解方式)
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <bean class="packageName.XXXInterceptor" /> </list> </property> </bean>
Interceptor的定义为:
public class XXXInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) { String className = handler.getClass().getName(); //packageName.ClassName if (Error) { return false ; } return true ; } }
参考:http://blog.csdn.net/geloin/article/details/7537070
第三种方式:(声明方式)
Spring 3.x里面,有个更方便的:
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/interceptor/*" /> <bean class="xxx.xxx.MyInterceptor" /> </mvc:interceptor> </mvc:interceptors>
浙公网安备 33010602011771号