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>  
时间: 2024-08-05 21:28:14

spring原拦截器配置与新命名空间mvc:interceptors配置拦截器对照与注意事项的相关文章

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

原先,我们是这么配置拦截器的 <bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor"> <property name="sessionFactory" ref="sessionFactory" /> </bean>

Spring mvc interceptor配置拦截器,没有登录跳到登录页

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/sch

详述 Spring MVC 框架中拦截器 Interceptor 的使用方法

1 前言 昨天新接了一个需要,"拦截 XXX,然后 OOO",好吧,说白了就是要用拦截器干点事(实现一个具体的功能).之前,也在网络上搜了很多关于Interceptor的文章,但感觉内容都大同小异,而且知识点零零散散,不太方便阅读.因此,正好借此机会,整理一篇关于拦截器的文章,在此分享给大家,以供大家参考阅读. 2 拦截器 2.1 概念 Java 里的拦截器是动态拦截 action 调用的对象.它提供了一种机制可以使开发者可以定义在一个 action 执行的前后执行的代码,也可以在一个

Spring MVC中的拦截器Interceptor

谈谈spring中的拦截器 在web开发中,拦截器是经常用到的功能.它可以帮我们验证是否登陆.预先设置数据以及统计方法的执行效率等等.今天就来详细的谈一下spring中的拦截器.spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor. 一,HandlerInterceptor拦截器 HandlerInterceptor是springMVC项目中的拦截器,它拦截的目标是请求的地址,比MethodInterceptor先执行.实现一个Ha

Spring MVC国际化配置

写在前面 项目开发中要考虑支持国际化,框架选用的是Spring MVC框架,这里查询相关资料,整理下Spring MVC如何配置并实现国际化. 具体实现 对于Spring MVC的国际化这里我是基于session来实现的,具体做法如下: 1.首先我们需要在XML配置文件中进行如下配置: <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSour

springMVC之mvc:interceptors拦截器的用法

1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> <!-- 日志拦截器 --> <mvc:interceptor> <mvc:mapping path="/**" /> <mvc:exclude-mapping path="/static/**" /> <bean class="拦截器java代码路径" /> </mvc:

bos项目第二天(msyql操作、ssh配置集成、PowerDesinger、自定义登陆拦截器)

项目第二天(完整流程) 1.  第二天 重点内容 搭建SSH 完成框架 以用户管理为例 用户登录 用户退出 修改密码 2.  开发流程 2.1.  业务分析 2.2.  数据库设计 MySQL : 新建 DataBase . 新建用户 User .进行授权 Oracle : 新建用户 User . 创建表空间 . 在表空间进行操作 MySQL 操作步骤 : 步骤: 新建数据库 查看字符集 show variables like '%char%'; client.connection.result

Spring Boot干货系列:(六)静态资源和拦截器处理

Spring Boot干货系列:(六)静态资源和拦截器处理 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持,今天详细的来介绍下默认的支持,以及自定义扩展如何实现. 默认资源映射 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration

spring mvc &lt;mvc:annotation-driven/&gt; 自定义拦截器不走

<mvc:annotation-driven/> 这个便签会注册2个自定义拦截器,所以导致请求过来就会自己去走注册的这2个拦截器和定义的一堆bean 但是这个便签是必须得定义的 直接贴代码吧 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=&qu