十一、【源码】 AspectJ实现Aop

源码地址:https://github.com/spring-projects/spring-framework

仓库地址:https://gitcode.net/qq_42665745/spring/-/tree/11-aop

AspectJ实现Aop

复习一下Aop的概念

  1. 切面(Aspect)
    将横跨多个模块的功能(日志等)从业务逻辑中抽离出来,封装成一个类,为切面,@Aspect
  2. 连接点(Join Point)
    连接点是程序执行的特定点,也就是定义了执行通知的时机,@Before, @After
  3. 切点(Pointcut)
    通过表达式匹配哪些类或方法应用切面,@Pointcut
  4. 通知(Advice)
    通知定义了在切入点上执行的具体动作。通知有多种类型,如前置通知、后置通知、环绕通知等。
  5. 织入(Weaving)
    织入是将切面应用到目标对象的过程。

流程:

1.封装AdvisedSupport 对象,包括目标对象,方法拦截器(自定义的功能),方法匹配器(AspectJ检查目标方法是否匹配)
2.使用JDK或Cglib创建代理对象,执行方法时,方法匹配器进行判断,拦截符合表达式的方法,如果是要被拦截的方法,执行方法拦截器中的自定义的功能,再反射执行原方法;如果否,直接反射执行原方法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值