willjava

导航

 

第一种方式:(自动代理)

<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>      
posted on 2014-03-28 11:31  威尔爪哇  阅读(160)  评论(0)    收藏  举报