如何在Grails应用程序中实现AOP评测

如何在Grails应用程序中实现AOP评测,grails,spring-aop,Grails,Spring Aop,我试图在grails中实现AOP。 我遵循了这一点 我在src/groovy文件夹中创建了一个服务和一个advice类。 但不幸的是,代码不适合我。下面是我的代码 package com.app.auth Class MyDemoService { void findAdviceTest(){ println"find by is running" } } AOP代码(src/groovy中的MyNewAdvice.groovy文件) 请提供帮助。您的代码正在使用组件注释。您是

我试图在grails中实现AOP。 我遵循了这一点

我在src/groovy文件夹中创建了一个服务和一个advice类。 但不幸的是,代码不适合我。下面是我的代码

package com.app.auth
Class MyDemoService
{
  void findAdviceTest(){
    println"find by is running"
  }
}
AOP代码(src/groovy中的MyNewAdvice.groovy文件)


请提供帮助。

您的代码正在使用组件注释。您是否已在resources.groovy中启用了类似这样的组件扫描程序

// grails-app/conf/spring/resources.groovy
beans = {
    xmlns context: 'http://www.springframework.org/schema/context'
    context.'component-scan'( 'base-package' : 'com.app.auth' )
}

这有帮助吗?您可能还希望在选择表达式中使用com.app.auth.MyDemoService.find*(),而不是grails.app.services.com.app.auth.MyDemoService.find*()。谢谢@Jeff,这很有效。但是dmahapatro给出的这一点也适用于我。你能解释一下两者的基本区别吗?哪一个更好?@akash,有很多事情在进行,但不知道哪些部分你已经熟悉,哪些部分你不熟悉,在StackOverflow评论中可能会涉及太多。它的缺点是Spring需要了解您的建议,以便将其应用于其他bean。你也可以通过这样的方式逃脱……//grails-app/conf/spring/resources.groovybeans={myAdvice-com.app.auth.MyNewAdvice}这样就可以从通知中删除组件注释。因为您在那里显式注册bean,所以不需要组件扫描程序。嗯
// grails-app/conf/spring/resources.groovy
beans = {
    xmlns context: 'http://www.springframework.org/schema/context'
    context.'component-scan'( 'base-package' : 'com.app.auth' )
}