spring拦截器学习小结

为了实现网站的日志管理,研究了几天的spring事务管理终于OK了!两种方法

方法一:实现对目标类进行拦截(对于有 的类,使用的是Java内部类提供的Proxy;而对于那些不实现接口 的类,使用的是cglib库)

xml 代码
  1. <!-- Bean configuration -->   
  2.    < bean   id = "businesslogicbean"   
  3.     class = "org.springframework.aop.framework.ProxyFactoryBean" >   
  4.       < property   name = "proxyInterfaces" >   
  5.          < value > IBusinessLogic </ value >   
  6.       </ property >   
  7.       < property   name = "target" >   
  8.          < ref   local = "beanTarget" />   
  9.       </ property >   
  10.       < property   name = "interceptorNames" >   
  11.          < list >   
  12.             < value > theAroundAdvisor </ value >   
  13.          </ list >   
  14.          </ property >   
  15.    </ bean >   
  16.    <!-- Bean Classes -->   
  17.    < bean   id = "beanTarget"   
  18.     class = "com.safetys.service.UserService" />   
  19.   
  20.    <!-- Advisor pointcut definition for around advice -->   
  21.    < bean   id = "theAroundAdvisor"   
  22.        class = "org.springframework.aop.support.RegexpMethodPointcutAdvisor" >   
  23.       < property   name = "advice" >   
  24.          < ref   local = "theAroundAdvice" />   
  25.       </ property >   
  26.       < property   name = "pattern" >   
  27.          < value > .* </ value >   
  28.       </ property >   
  29.    </ bean >   
  30.     
  31.    <!-- Advice classes -->   
  32.    < bean   id = "theAroundAdvice"   
  33.        class = "com.safetys.iface.TestBeforeAdvice" />   

 

方法二:拦截ACTION(我现在用的就是这方法)

xml 代码
  1. < bean   id = "actionBeanNameProxyCreator"      
  2. class = "org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator" >      
  3. < property   name = "beanNames" > < value > *Action </ value > </ property >      
  4. < property   name = "interceptorNames" >      
  5. < list >      
  6. < value > theBeforeAdvice </ value >      
  7. </ li  st >      
  8. </ property >      
  9. </ bean >     
  10. < bean   id = "theBeforeAdvice"   class = "com.safetys.iface.TestBeforeAdvice" />  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring拦截器、过滤器和AOPSpring框架中常用的三种技术,用于实现对请求的处理和控制。它们的作用和使用方式有一些不同,我会分别对它们进行简单解释。 1. 过滤器(Filter): 过滤器是Java Servlet规范提供的一种技术,用于在请求到达Servlet之前或响应返回给客户端之前拦截和处理请求。过滤器可以在Web应用的整个生命周期中起作用,对所有请求都生效。常见的应用场景包括:编码转换、身份认证、日志记录等。 2. 拦截器(Interceptor): 拦截器Spring框架提供的一种技术,用于在请求到达Handler(Controller方法)之前或响应返回给客户端之前对请求进行拦截和处理。拦截器只在Spring MVC中起作用,用于实现对请求的预处理和后处理。常见的应用场景包括:身份认证、权限控制、日志记录等。 3. AOP(面向切面编程): AOP是一种编程思想,也是Spring框架提供的一种技术。通过AOP,可以将与业务逻辑无关的横切关注点(如日志、事务管理等)从业务逻辑中解耦出来,以模块化的方式进行管理。在Spring中,AOP通常通过动态代理实现,可以在方法执行前、后或抛出异常时进行一些额外的处理。AOP常用于事务管理、日志记录、性能监控等方面。 总结: - 过滤器主要用于在Servlet规范中对请求进行拦截和处理。 - 拦截器主要用于在Spring MVC中对请求进行拦截和处理。 - AOP主要用于将与业务逻辑无关的横切关注点进行解耦和管理。 希望以上解释能对你有所帮助!如果有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值