国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > spring原拦截器配置与新命名空间mvc:interceptors配置拦截器对比与注意事项

spring原拦截器配置与新命名空间mvc:interceptors配置拦截器对比与注意事项

来源:程序员人生   发布时间:2014-09-16 02:40:32 阅读次数:2506次
原先,我们是这么配置拦截器的
<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>



生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生