详解SpringBoot AOP 拦截器(Aspect注解方式)__第1页
详解SpringBoot AOP 拦截器(Aspect注解方式)__第2页
详解SpringBoot AOP 拦截器(Aspect注解方式)__第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、详解SpringBoot AOP 拦截器(Aspect注解方式)_ 常用用于实现拦截的有:Filter、HandlerInterceptor、MethodInterceptor 第一种Filter属于Servlet供应的,后两者是spring供应的,HandlerInterceptor属于Spring MVC项目供应的,用来拦截恳求,在MethodInterceptor之前执行。 实现一个HandlerInterceptor可以实现接口HandlerInterceptor,也可以继承HandlerInterceptorAdapter类,两种方法一样。这个不在本文范围,具体用法之前已经写过Spr

2、ingBoot的(SpringMVC的用法一样,区分只是配置) MethodInterceptor是AOP项目中的拦截器,它拦截的目标是方法,即使不是Controller中的方法。 实现MethodInterceptor拦截器大致也分为两种,一种是实现MethodInterceptor接口,另一种利用Aspect的注解或配置。 关于实现MethodInterceptor接口的这种方法,还需要在配置文件中做配置,在SpringMVC中用法还可以,在SpringBoot中用法起来好像没有那么便利。 本文主要还是说Aspect注解方式,个人觉得这种方法才比较敏捷,与配置与工程整个代码都没有耦合(你添

3、加一个类,做几个注解就可以用了,无需在其他地方再做什么),更易应用。 首先为你的SpringBoot项目添加maven依靠,让其支持aop(其实就是自动引入aop需要的一些jar) 在pom.xml中添加依靠: 此时我们访问show恳求,就会被拦截,掌握台会打印输出。假如恳求show2则不会被拦截。 留意: 1、在perties中也不需要添加spring.aop.auto=true,由于这个默认就是true,值为true就是启用EnableAspectJAutoProxy注解了。 2、你不需要手工添加 EnableAspectJAutoProxy 注解。 3、当你

4、需要用法CGLIB来实现AOP的时候,需要配置xy-target-class=true,这个默认值是false,不然默认用法的是标准Java的实现。 其实aspectj的拦截器会被解析成AOP中的advice,最终被适配成MethodInterceptor,这些都是Spring自动完成的,假如你有爱好,具体的过程请参考springAOP的实现。 关于集中拦截方法的区分总结: HandlerInterceptoer拦截的是恳求地址,所以针对恳求地址做一些验证、预处理等操作比较合适。当你需要统计恳求的响应时间时MethodInterceptor将不太简单做到,由于它可能跨越许多方法或者只涉及到已经定义好的方法中一部分代码。 MethodInterceptor利用的是AOP的实现机制,在本文中只说明白用法方式,关于原理和机制方面介绍的比较少,由于要说清晰这些需要讲出AOP的相当一部分内容。在对一些一般的方法上的拦截HandlerInterceptoer就无能为力了,这时候只能利用AOP的MethodInterceptor。 Filte

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论