zoukankan      html  css  js  c++  java
  • spring原拦截器配置与新命名空间mvc:interceptors配置拦截器对照与注意事项

    原先,我们是这么配置拦截器的
       <bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
          <property name="sessionFactory" ref="sessionFactory" />
       </bean>
     
        <beanclass="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
           <property name="interceptors">
             <list>
             <ref bean="openSessionInViewInterceptor"/>
             <bean class="com.jumbo.interceptor.MetaInfoInterceptor"/>
             </list>
           </property>
      </bean>

    原配置方式结合新命名空间mvc:interceptors配置方式

    <mvc:annotation-driven />
     
    <!-- *************openSessionInViewInterceptor  *************-->
       <bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
          <property name="sessionFactory" ref="sessionFactory" />
       </bean> 
     
       <!--
          **************interceptors **************************
       -->
       <beanclass="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
          <property name="interceptors">
            <list>
               <ref bean="openSessionInViewInterceptor" />
            </list>
          </property>
       </bean>
     
       <mvc:interceptors>
          <mvc:interceptor>
            <mvc:mapping path="/**/*.htm" />
            <bean id="metaInfoInterceptor" class="com.jumbo.web.interceptor.MetaInfoInterceptor"/>
          </mvc:interceptor>
       </mvc:interceptors>

    这样对吗???

    因为<mvc:annotation-driven  />会自己主动注冊DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个实例,

    <span style="color:#FF6666;"><beanclass="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></span>
    这儿又注冊一次导致导致没有openSessionInViewInterceptor,产生了no session 异常

    所以:放弃原拦截器配置方式拥抱新的方法:

        <mvc:annotation-driven />  
         <mvc:interceptors>  
            <!--*************openSessionInViewInterceptor *************   -->  
            <bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">  
              <property name="sessionFactory" ref="sessionFactory" />  
            </bean>  
          
            <mvc:interceptor>  
              <mvc:mapping path="/**/*.htm" />  
              <bean id="metaInfoInterceptor" class="com.jumbo.web.interceptor.MetaInfoInterceptor"/>  
            </mvc:interceptor>  
          
         </mvc:interceptors>  



  • 相关阅读:
    Codeforces Round #384 (Div. 2) 解题报告
    Codeforces Round #383 (Div. 2) 解题报告
    (DFS、bitset)AOJ-0525 Osenbei
    (DFS、全排列)POJ-3187 Backward Digit Sums
    自考新教材-p169
    自考新教材-p167
    自考新教材-p166
    自考新教材-p165
    自考新教材-p161
    自考新教材-p159
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3947481.html
Copyright © 2011-2022 走看看