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>  



  • 相关阅读:
    adb命令(一)
    appium-DesiredCapability详解与实战
    Appium-appium日志分析
    Appium-关于appium的原生控件的 xpath 定位问题及常用方法
    Appium-xpath详解
    appium界面元素介绍
    Python3.5.1 下使用HTMLParser报错
    Python3 将configparser从ini文件中读取的内容转换成字典格式
    Django forms 关于select和checkbox设置初始选中值
    Django admin注册model究竟要怎么写才优雅
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3947481.html
Copyright © 2011-2022 走看看