AspectJ介绍和切入点表达式

AspectJ是一个独立的AOP框架,常与Spring结合用于AOP操作。它支持通过XML配置和注解方式实现AOP。切入点表达式用于指定增强的目标方法,如`execution(*com.ffyc.spring.Demo.*)`,通配符允许匹配类名、方法名和参数。全统配表达式为`execution(**…*.*(…))`,可匹配任何包、类和方法。
摘要由CSDN通过智能技术生成

AspectJ介绍和切入点表达式

AspectJ框架介绍:

Spring框架中一般都是基于AspectJ实现AOP操作的

  • 什么是AspectJ?
    • AspectJ不是Spring组成部分, 而是一款独立的AOP框架, 一般将AspectJ与Spring一起使用进行AOP操作

AspectJ是一款基于Java语言开发的AOP框架

基于AspectJ实现AOP操作:

  1. 基于XML配置文件的方式
  2. 基于注解方式实现(我们大多都是使用这种基于注解的方式)

在进行AOP相关操作时一定要记得导入AOP相关依赖, 如果要使用AspectJ框架, 那么要记的导入AspectJ框架相关依赖

切入点表达式:

切入点表达式的作用: 知道对哪个类里面的哪个方法进行增强 --> 也就是配置切入点的时候使用的

格式:

访问修饰符 返回值 包名.包名.包名.类名.方法名(参数列表)
 
上面的包名.包名.包名.类名就是全类名
  • 注意: 权限修饰符可以省略不写, 注意: 这里的不写是真正的不写, 连通配符都可以不写

关于统配切入点表达式的写法:

  1. 返回值可以使用通配符==*==

  2. 包名可以使用通配符==*==

    • 但是这样写一级包就要加一个* , 比如com.ffyc.spring.Demo类, 包名通配就是: * . * . * . Demo
    • 对于包名我们可以直接使用一个==…==来进行一个统配, 表示的是当前包以及子包, 比如com.ffyc.spring.Demo类通配就是: == … *==,
  3. 类名和方法名都可以使用通配符==*==

  4. 参数类型:
    ①: 可以使用==*==通配, 但是前提是必须有参数

    ②: ==…==表示有无参数均可, 有参数时可以是任意类型

切入点表达式中*****表示匹配一个或者多个字符, **…**匹配任意多个参数(参数类型也是任意的)或者匹配任意多层路径

  • 所以我们的*…表示本包以及所有子包就是 *匹配了一级包, 而…匹配了所有的子包
  • 因为*表示的是一个或者多个字符, 所以 * Demo无法匹配到Demo

切入点表达式中*匹配一个或者多个字符, 在*正则表达式中 匹配零个或者多个字符

切入点表达式的全统配写法:

execution(* * … * . * (…) )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值