SpringBoot学习记录 三

本文详细介绍了SpringAOP中的核心概念,包括连接点、切点、通知、目标对象、引入和织入。重点讨论了切点表达式和AspectJ的指示器,如execution()、args()、@args()等,以及如何通过它们精确匹配和控制拦截的方法。同时,阐述了如何使用这些概念来增强Bean的功能和定制处理流程。
摘要由CSDN通过智能技术生成

相关概念

Spring AOP是一种基于方法的AOP,它只能应用于方法上。

  • 连接点-join point

对应的是具体被拦截的对象,因为Spring只能支持方法,所以被拦截的对象往往就是指特定的方法。

  • 切点-point cut

切面不单单应用于当个方法, 也可能是多个类的不同方法,这时可以通过正则式和指示器的规则去定义从而适配连接点。

同俗点讲,就是正则式和指示器匹配的对象(方法),这些方法都是我们想要去做处理的

  • 通知-advice
    本质是方法,方法里做出一些默认实现,分为
    前置通知(before advice)
    后置通知(after advice),又称为最终通知
    环绕通知(around advice)
    返回通知(afterReturning advice)
    异常通知(afterThrowing advice)

  • 目标对象-target
    被代理的对象

  • 引入-instroduction

引入新的类和方法,增强现有Bean的功能

  • 织入-weaving
    将约定的内容织入到约定流程中(将拼图放到模型图的正确位置)

  • 切面-aspect

定义切点、各类通知、引入的内容,Spring AOP将通过它的信息来增强Bean的功能或者将对应的方法织入流程

-Spring AOP约定流程图
在这里插入图片描述

表达式-正则式和指示器

  • execution(修饰符 返回值类型 类的全限定名.方法名(参数) )
    *–>通配符
    …–>任务多个参数
  • AspectJ的指示器
AspectJ指示器描述
args()限制连接点匹配参数为指定类型的执行方法
@args()限制连接点匹配参数由指定注解标注的执行方法
execution()用于匹配是连接点的执行方法
this()限制连接点匹配AOP代理的Bean引用为指定类型的类
target()限制连接点匹配目标对象为指定类型的类
@target()限制连接点匹配特定的执行对象,这些对象对应的类要具备有指定类型的注解
within()限制连接点匹配指定的类型
@within()限制连接点匹配指定注解标注的类型
@annotaion()限制匹配带有指定注解连接点
bean()spring独有,限制匹配指定的Bean名称的类
  • 合并表达式
    &&–>表示完全匹配
    ||–>表示部分匹配
    !–>表示排除表达式匹配到的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值