Spring Aspects建议在Grails App中执行两次

时间:2011-02-25 12:29:57

标签: grails spring-aop

我有一个grails应用程序,我在grails服务方法上添加了@After建议

class OrderManagementService {

    static transactional = true

    public void confirmOrder() {


    }
}


@Aspect
public class NotVeryUsefulAspect {


    @Pointcut("execution(* OrderManagementService.confirmOrder())")
    public void orderManagementConfirmOrder(){}

    @After("orderManagementConfirmOrder()")
    public void doSomething(){
        System.out.println("My First Advice is working :-)");
    }


    @Around("orderManagementConfirmOrder()")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        System.out.println("Around Method Invoked");
        return pjp.proceed();
    }
}

然而,当执行此方法时,这两个建议都被调用两次,因此在我有

的输出中

围绕方法调用 围绕方法调用 我的第一个建议是:-) 我的第一个建议是: - )

我认为这与grails服务的CGLIB代理有关

这是我的resource.xml

aop:aspectj-autoproxy proxy-target-class="false"

bean id="myAspect" class="org.xyz.NotVeryUsefulAspect"


aop:config proxy-target-class="true"

xml内部

任何人遇到这个并有一个解决方案,使其正常工作欢呼

0 个答案:

没有答案