AOP切入点表达式 ——within表达式 、execution()表达式
支持切点标识符
Spring AOP支持使用以下AspectJ切点标识符(PCD),用于切点表达式:
- execution: 用于匹配方法执行连接点。 这是使用Spring AOP时使用的主要切点标识符。 可以匹配到方法级别 ,细粒度
- within: 只能匹配类这级,只能指定类, 类下面的某个具体的方法无法指定, 粗粒度
- this: 匹配实现了某个接口:this(com.xyz.service.AccountService)
- target: 限制匹配到连接点(使用Spring AOP时方法的执行),其中目标对象(正在代理的应用程序对象)是给定类型的实例。
- args: 限制与连接点的匹配(使用Spring AOP时方法的执行),其中变量是给定类型的实例。 AOP) where the arguments are instances of the given types.
- @target: 限制与连接点的匹配(使用Spring AOP时方法的执行),其中执行对象的类具有给定类型的注解。
- @args: 限制匹配连接点(使用Spring AOP时方法的执行),其中传递的实际参数的运行时类型具有给定类型的注解。
- @within: 限制与具有给定注解的类型中的连接点匹配(使用Spring AOP时在具有给定注解的类型中声明的方法的执行)。
- @annotation:限制匹配连接点(在Spring AOP中执行的方法具有给定的注解)。
访问修饰符:可不写 可以匹配任何一个访问修饰符
返回值:如果是jdk自带类型可以不用写完整限定名,如果是自定义类型需要写上完整限定名,如果被切入的方法返回值不一样可以使用* 代表所有的方法值都能匹配
包名:cn.* == cn.dym == cn.任意名字 但是只能匹配一级 比如 cn.dym.service就无法匹配
如果要cn.dym.service ==>cn.dym.service , cn.dym.* ==>cn.dym.service.impl就无法匹配
cn.dym..* ==>cn.dym.service.impl 可以匹配
类名: 可以写*,代表任何名字的类名。 也可以模糊匹配 *ServiceImpl==> UserServiceImpl ==>RoleServiceImpl
方法名:可以写*,代表任何方法。 也可以模糊匹配 *add==> useradd ==>roleadd
参数:如果是jdk自带类型可以不用写完整限定名,如果是自定义类型需要写上完整限定名。 如果需要匹配任意参数 可以写:..
原文链接:https://blog.csdn.net/qq_39368007/article/details/115470689
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具