美文网首页
Spring中的通配符

Spring中的通配符

作者: 藝龍 | 来源:发表于2017-10-23 15:00 被阅读0次

    任意公共方法的执行:

    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 annotation的连接点(在Spring AOP中只是方法执行):

    @annotation(org.springframework.transaction.annotation.Transactional)

    任何一个接受一个参数,并且传入的参数在运行时的类型实现了@Classified annotation的连接点(在Spring AOP中只是方法执行):

    @args(com.xyz.security.Classified)

    相关文章

      网友评论

          本文标题:Spring中的通配符

          本文链接:https://www.haomeiwen.com/subject/hcrauxtx.html