依赖注入在 Grails 服务中不起作用

Dependency injection not working inside Grails service

我有一个 class,我将其移动到 grails-app/services 目录下,以便注入 springSecurityService。 class 是 spring userDetailsS​​ervice class 的实现(这是正确的术语吗?)。这是我在 resources.groovy 中的声明:

userDetailsService(com.company.product.PracticeUserDetailsService) {
    grailsApplication = ref('grailsApplication')
}

这个 class 正在扩展 GormUserDetailsService.

我尝试的 dependencyInjection 导致空对象。

class PracticeUserDetailsService extends GormUserDetailsService{

    def springSecurityService

    UserDetails loadUserByUsername(String username, boolean loadRoles) throws UsernameNotFoundException {
        // impl omitted
    }
}

如果我在 grails 中创建一些测试控制器或一些服务并注入 springSecurityService,它工作正常。所以,也许这个特定的 class 没有将它放在 Grails 生态系统中。我检查了 this 尝试手动注入它,如下所示:

beans = {
    springSecurityTEST(grails.plugins.springsecurity.SpringSecurityService) {}

}

PracticeUserDetailsServicegrails-app/services 移动到 src/groovy 并将 resources.groovy 中的 Spring bean 定义更改为:

userDetailsService(com.company.product.PracticeUserDetailsService) {
    grailsApplication = ref('grailsApplication')
    springSecurityService = ref('springSecurityService')
}

对我来说,当我使用 GrailsApp.run(Application, args) 到 运行 应用程序时发生了...