zoukankan      html  css  js  c++  java
  • Aspect表达式

    任意公共方法的执行:
    execution(public * *(..))
    任何一个以“set”开始的方法的执行:
    execution(* set*(..))
    AccountService 接口的任意方法的执行:
    execution(* com.xyz.service.AccountService.*(..))
    定义在service包里的任意方法的执行:
    execution(* com.xyz.service.*.*(..))
    定义在service包和所有子包里的任意类的任意方法的执行:
    execution(* com.xyz.service..*.*(..))
    定义在pointcutexp包和所有子包里的JoinPointObjP2类的任意方法的执行:
    execution(* com.test.spring.aop.pointcutexp..JoinPointObjP2.*(..))")
    ***> 最靠近(..)的为方法名,靠近.*(..))的为类名或者接口名,如上例的JoinPointObjP2.*(..))

    pointcutexp包里的任意类.
    within(com.test.spring.aop.pointcutexp.*)
    pointcutexp包和所有子包里的任意类.
    within(com.test.spring.aop.pointcutexp..*)
    实现了Intf接口的所有类,如果Intf不是接口,限定Intf单个类.
    this(com.test.spring.aop.pointcutexp.Intf)
    ***> 当一个实现了接口的类被AOP的时候,用getBean方法必须cast为接口类型,不能为该类的类型.

    带有@Transactional标注的所有类的任意方法.
    @within(org.springframework.transaction.annotation.Transactional)
    @target(org.springframework.transaction.annotation.Transactional)
    带有@Transactional标注的任意方法.
    @annotation(org.springframework.transaction.annotation.Transactional)
    ***> @within和@target针对类的注解,@annotation是针对方法的注解

    参数带有@Transactional标注的方法.
    @args(org.springframework.transaction.annotation.Transactional)
    参数为String类型(运行是决定)的方法.
    args(String)

  • 相关阅读:
    Unreal Engine 4 Based Materials
    PhysX Clothing for UE4
    UE4中使用URL图片
    开始创作自己的VR作品——VR故事叙述终极指南
    UE4里的自定义深度功能
    Mybatis27题
    java 备用待迁移
    几个算法题目
    数据结构算法题目
    Mybatis 面试题
  • 原文地址:https://www.cnblogs.com/xianlei/p/8074664.html
Copyright © 2011-2022 走看看