Grails:如何在服务内部提供服务?

Grails : How do you make services available inside services?

我目前 运行 遇到一个问题,我试图在服务中使用服务,但该服务为空

class ApplicationService{
    def someService

    def someMethod(){
        someService.method()//null on someService
    }
}

我需要执行额外的布线才能使其正常工作吗?在此先感谢您的帮助。

我能够通过使用 grailsApplication 并加载服务来做到这一点。

if(!someService){
    someService = grailsApplication.classLoader.loadClass("org.company.SomeService").newInstance()
}

我在这里最可能的解释是,SomeService 背后的 class 不是 Grails 服务工件,因此您不能像那样注入它。

仔细检查源代码 class 是否真的是一项服务或只是 src/groovy 中的 Groovy class。框架会区别对待这两者。

也不要像您的回答那样尝试通过手动创建实例来注入服务,这不是在 Grails(或 Spring 中)进行依赖注入的正确方法。