Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring在Grails应用程序中执行了两次_Grails_Spring Aop - Fatal编程技术网

Spring在Grails应用程序中执行了两次

Spring在Grails应用程序中执行了两次,grails,spring-aop,Grails,Spring Aop,我有一个grails应用程序,并且在grails服务方法上添加了@After建议 class OrderManagementService { static transactional = true public void confirmOrder() { } } @Aspect public class NotVeryUsefulAspect { @Pointcut("execution(* OrderManagementService.conf

我有一个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内部


任何人遇到这个问题,都能找到正确的解决方案。干杯

我也遇到过同样的问题——我必须在不使用“执行”的情况下解决它——明天我会尝试一下。干杯效果很好。戴夫干杯,如果你想让它成为一个让你的代表站起来的答案