Aspect 切点表达式(xml形式,非注解形式的)

本文详细介绍了 Spring AOP 中的切点表达式使用方法,包括 execution、within、this 和 target 的应用场景及示例,帮助读者理解并掌握如何在实际项目中配置和使用切点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<aop:pointcut   expression="切点表达式"    id="aspect"/>

Aspect 切点表达式:

          execution: 匹配指定的方法

                     execution(void perform()) 匹配项目下所有该方法

                     execution(void first.Singer.perform()) 匹配具体到某个类的该方法

                     execution(* first.Artist.perform()) 不考虑返回值类型

                     execution(* first.Artist.perform(..)) 不考虑返回值类型和参数列表

                     execution(* first.Aritst.perform(*,*)) 参数必须是两个

                     execution(* first.Artist.perform(..,java.lang.String))

                     execution(* find*(..)) 所有方法名符合findXxx 的方法

                     execution(* com.tarena.service.StoreService.*(..)) 该类中所有方法

                     execution(* com.tarena.service.*.*(..)) 该包中所有类的所有方法

                     execution(* com.tarena..*.*(..)) 该包及其子包中所有类的所有方法


            within: 匹配类内的所有方法(必须是实现类,不能是接口)

  • 在service包中的任意连接点(在Spring AOP中只是方法执行):
    within(com.xyz.service.*)
  • 在service包或其子包中的任意连接点(在Spring AOP中只是方法执行):
    within(com.xyz.service..*)
  • 实现了AccountService接口的代理对象的任意连接点 (在Spring AOP中只是方法执行):
    this(com.xyz.service.AccountService)
    'this'在绑定表单中更加常用:- 请参见后面的通知一节中了解如何使得代理对象在通知体内可用。
  • 实现AccountService接口的目标对象的任意连接点 (在Spring AOP中只是方法执行):
    target(com.xyz.service.AccountService)
    'target'在绑定表单中更加常用:- 请参见后面的通知一节中了解如何使得目标对象在通知体内可用。
  • 任何一个只接受一个参数,并且运行时所传入的参数是Serializable 接口的连接点(在Spring AOP中只是方法执行)
    args(java.io.Serializable)
    'args'在绑定表单中更加常用:。
    请注意在例子中给出的切入点不同于 execution(* *(java.io.Serializable)): args版本只有在动态运行时候传入参数是Serializable时才匹配,而execution版本在方法签名中声明只有一个 Serializable类型的参数时候匹配。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值