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>  



  • 相关阅读:
    php 高精度计算函数
    CSS 文本溢出显示省略号样式
    Vue import、export及export default示例详解,附带如何实现全局调用
    利用高德API获取最新的省市区数据
    TP5 基类验证器
    php 两种递归方法
    新建PO類型ZFA的固定資產時灰掉 GR Non-Valuated
    MRP 參數設置
    info record
    kill procedure in os level
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3947481.html
Copyright © 2011-2022 走看看