spring aop 切点声明

多条件   ||  java


 

任意公共方法的执行:
execution(public * *(..))spring


任何一个以“set”开始的方法的执行:
execution(* set*(..))this


AccountService 接口的任意方法的执行:
execution(* com.xyz.service.AccountService.*(..)).net


定义在service包里的任意方法的执行:
execution(* com.xyz.service.*.*(..))代理


定义在service包或者子包里的任意方法的执行:
execution(* com.xyz.service..*.*(..))orm


在service包里的任意链接点(在Spring AOP中只是方法执行) :
within(com.xyz.service.*)对象


在service包或者子包里的任意链接点(在Spring AOP中只是方法执行) :
within(com.xyz.service..*)接口


实现了 AccountService 接口的代理对象的任意链接点(在Spring AOP中只是方法执行) :
this(com.xyz.service.AccountService)get


'this'在binding form中f用的更多:- 请常见如下讨论通知的章节中关于如何使得代理对象能够在通知体内访问到的部分。
实现了 AccountService 接口的目标对象的任意链接点(在Spring AOP中只是方法执行) :
target(com.xyz.service.AccountService)it


'target'在binding form中用的更多:- 请常见如下讨论通知的章节中关于如何使得目标对象能够在通知体内访问到的部分。
任何一个只接受一个参数,且在运行时传入的参数实现了 Serializable 接口的链接点 (在Spring AOP中只是方法执行)
args(java.io.Serializable)


'args'在binding form中用的更多:- 请常见如下讨论通知的章节中关于如何使得方法参数能够在通知体内访问到的部分。 请注意在例子中给出的切入点不一样于 execution(* *(java.io.Serializable)): args只有在动态运行时候传入参数是可序列化的(Serializable)才匹配,而execution 在传入参数的签名声明的类型实现了 Serializable 接口时候匹配。


有一个 @Transactional 注解的目标对象中的任意链接点(在Spring AOP中只是方法执行)
@target(org.springframework.transaction.annotation.Transactional)


'@target' 也能够在binding form中使用:请常见如下讨论通知的章节中关于如何使得annotation对象能够在通知体内访问到的部分。
任何一个目标对象声明的类型有一个 @Transactional 注解的链接点(在Spring AOP中只是方法执行)
@within(org.springframework.transaction.annotation.Transactional)


'@within'也能够在binding form中使用:- 请常见如下讨论通知的章节中关于如何使得annotation对象能够在通知体内访问到的部分。
任何一个执行的方法有一个 @Transactional annotation的链接点(在Spring AOP中只是方法执行)
@annotation(org.springframework.transaction.annotation.Transactional)

'@annotation' 也能够在binding form中使用:- 请常见如下讨论通知的章节中关于如何使得annotation对象能够在通知体内访问到的部分。 任何一个接受一个参数,而且传入的参数在运行时的类型实现了 @Classified annotation的链接点(在Spring AOP中只是方法执行) @args(com.xyz.security.Classified) 

相关文章
相关标签/搜索