当前位置: 代码迷 >> J2EE >> 关于aop的aspectj after有关问题
  详细解决方案

关于aop的aspectj after有关问题

热度:170   发布时间:2016-04-22 01:34:10.0
关于aop的aspectj after问题。
为什么我的aop after总是在该方法之前执行。而不是在后面。?

Java code
@Aspectpublic class AdvAop{//after@After("execution(*  com.test.service.adv.impl.AdvServiceImpl.apply(..))")    public void advaop(JoinPoint joinpoint){                 Object[] args=joinpoint.getArgs();                 System.out.println(args[0]);            System.out.println("***************************");    } }


调用的是一个插入数据的一个service 该service调用了dao的方法
而hibernate 的sql 打印总是出现在********打印的后面。
也就是先执行了aop 而后执行的 service

而不是先出现hibernate的sql 而在出现aop的打印********

是我after调用错了还是我配置上的错误?
还有after和afterrunning有什么区别。

spring用自动搜索aspectj

求解答。

------解决方案--------------------
你试试@AfterReturning吧,如果不行的话那就没办法了。
after是方法执行后,而afterreturning就是在return的时候执行,从先后来说after在afterreturning之前。