Spring AOP expression排除
最近在开发中用到aop技术做后台管理操作人员的操作记录,开发过程有想过排除一些不需要记录的包和类以及方法,开发完成后经过测试,觉得很有必要加排除。刚开始就直接试着用execution(* com.tmt.*.*.controller.*.save*(..)) and !execution(* com.tmt..api.controller.*.*(..))
类似这样的,加上后测试发现无效。后来细思这个条件,就想着会不会是因为第一个条件已经过滤所有controller包,后面条件再排除api.controller是不是就不会有效了,本着这个想法调换了位置,经过测试,果真可以了。**这是最后成功的案例:
<aop:pointcut id="target" expression="!execution(* com.tmt..app.controller.*.*(..)) and execution(* com.tmt.*.*.controller.*.save*(..))"/>