spring aop expression简单说明

 

<aop:config>
       <aop:pointcut id="userDAO" expression="execution(public * cn.dao.IUserDAO.*(..))" />
       <aop:advisor advice-ref="tx" pointcut-ref="userDAO"/>
</aop:config>

 

execution                 是方法运行

public                    是指定public的方法,也可以不写直接:execution(* cn.dao.IUserDAO.*(..)

*                         是任意返回值,可以有返回值,也可以是void没有返回值的方法

cn.dao.IUserDAO.*         是指定目录下的指定类任意方法

cn.dao.IUserDAO.insert*   是指定目录下的指定类insert开头的任意方法

cn.dao.IUserDAO.*.*       是指定目录下的任意类下的任意方法

cn.dao..*.*               是指定目录下的任意目录下任意类下的任意方法

(..)                      是任何参数,可以是没有参数

 

下面给出一些常见切入点表达式的例子

1、任意公共方法的执行

execution(public * *(..))

2、任何一个以“set”开始的方法的执行

execution(* set*(..))

3、AccountService 接口的任意方法的执行:

execution(* com.xyz.service.AccountService.*(..))

4、定义在service包里的任意方法的执行

execution(* com.xyz.service.*.*(..))

5、定义在service包或者子包里的任意方法的执行

execution(* com.xyz.service..*.*(..))

 

在execution中是可以有多个的方法,例如:

execution(* com.action.userinfoAction..*(..))&&execution(* com.action.memberAction..*(..))&&!execution(* get*(..))&&!execution(* set*(..))

分隔符:&&、||、and、or

你可能感兴趣的:(spring aop)