-
任意公共方法的执行:
execution(public * *(..))
-
任何一个名字以“set”开始的方法的执行:
execution(* set*(..))
-
AccountService
接口定义的任意方法的执行:
execution(* com.xyz.service.AccountService.*(..))
-
在service包中定义的任意方法的执行:
execution(* com.xyz.service.*.*(..))
-
在service包或其子包中定义的任意方法的执行:
execution(* com.xyz.service..*.*(..))
-
在service包中的任意链接点(在Spring AOP中只是方法执行):
within(com.xyz.service.*)
-
在service包或其子包中的任意链接点(在Spring AOP中只是方法执行):
within(com.xyz.service..*)
-
实现了
AccountService
接口的代理对象的任意链接点 (在Spring AOP中只是方法执行):
this(com.xyz.service.AccountService)
-
实现
AccountService
接口的目标对象的任意链接点 (在Spring AOP中只是方法执行):
target(com.xyz.service.AccountService)
-
任何一个只接受一个参数,而且运行时所传入的参数是
Serializable
接口的链接点(在Spring AOP中只是方法执行)
args(java.io.Serializable)
请注意在例子中给出的切入点不一样于
execution(* *(java.io.Serializable))
: args版本只有在动态运行时候传入参数是Serializable时才匹配,而execution版本在方法签名中声明只有一个
Serializable
类型的参数时候匹配。
-
目标对象中有一个
@Transactional
注解的任意链接点 (在Spring AOP中只是方法执行)
@target(org.springframework.transaction.annotation.Transactional)
-
任何一个目标对象声明的类型有一个
@Transactional
注解的链接点 (在Spring AOP中只是方法执行):
@within(org.springframework.transaction.annotation.Transactional)
-
任何一个执行的方法有一个
@Transactional
注解的链接点 (在Spring AOP中只是方法执行)
@annotation(org.springframework.transaction.annotation.Transactional)
-
任何一个只接受一个参数,而且运行时所传入的参数类型具备
@Classified
注解的链接点(在Spring AOP中只是方法执行)
@args(com.xyz.security.Classified)
-
任何一个在名为'
tradeService
'的Spring bean之上的链接点 (在Spring AOP中只是方法执行):
bean(tradeService)
-
任何一个在名字匹配通配符表达式'
*Service
'的Spring bean之上的链接点 (在Spring AOP中只是方法执行):
bean(*Service)