Spring之AOP相关概念理解

53 篇文章 0 订阅
53 篇文章 0 订阅

切面

切面在指定的连接点被织入到目标对象中。

连接点:joinPoint
  • 方法的前前后后都可以是连接点。
  • 连接点(Join point):连接点是在应用执行过程中能够插入切面的一个点。
通知:advice 指定 何时?
  • 通知:advice,比如:安全、事物、日志等
  • 通知(Advice):切面的工作被称为通知。通知定义了切面是什么以及何时使用。除了描述切面要完成的工作,通知还解决了何时执行这个工作的问题。
    前置通知(Before):在目标方法被调用之前调用通知功能
    后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么
    返回通知(After-returning):在目标方法成功执行之后调用通知
    异常通知(After-throwing):在目标方法抛出异常后调用通知
    环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和之后执行自定义的行为
pointCut 指定 何处?做什么?
  • 切点:pointCut,筛选连接点,具体几个地方作为连接点。
  • 切点(Pointcut)
    一个切面并不需要通知应用的所有连接点,切点有助于缩小切面所通知的连接点范围。如果说通知定义了切面的“什么”和“何时”的话,那么切点就定义了“何处”。因此,切点其实就是定义了需要执行在哪些连接点上执行通知。
在目标对象的生命周期中有很多个点可以进行织入:
  • 编译期:切面在目标类编译时被织入。这种方式需要特殊的编译器。AspectJ的织入编译器就是以这种方式织入切面的。
  • 类加载期:切面在目标类加载到JVM时被织入。这种方式需要特殊的类加载器,它可以在目标类被引入应用之前增强该目标类的字节码。AspectJ 5的加载时织入就支持这种方式织入切面。
  • 运行期:切面在应用运行的某个时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象动态的创建一个代理对象。Spring AOP就是以这种方式织入切面的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值