spring AOP 面向切面

AOP:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续
AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码
经典应用:事务管理、性能监视、安全检查、缓存 、日志等

AOP实现原理

  • aop底层将采用代理机制进行实现。
  • 接口 + 实现类 :spring采用 jdk 的动态代理Proxy。
  • 实现类:spring 采用 cglib字节码增强。

核心知识点
1.target:目标类,需要被代理的类。
2.Joinpoint(连接点):所谓连接点是指那些可能被拦截到的方法。
3.PointCut 切入点:已经被增强的连接点。
4.advice 通知/增强,增强代码。
5.Weaving(织入):是指把增强advice应用到目标对象target来创建新的代理对象proxy的过程.
6.proxy 代理类

  1. Aspect(切面): 是切入点pointcut和通知advice的结合

一个线是一个特殊的面。
一个切入点和一个通知,组成成一个特殊的面。

通过Joinpoint.getSignature();获取拦截到的方法签名MethodSignature
MethodSignature.getMethod() 找到对应执行方法
如需使用注解@aspect 必须在xml中进行配置
<aop:aspectj-autoproxy />

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容