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

时间:2018-11-16 00:27:21

标签: grails

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

class ApplicationService{
    def someService

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

要执行此操作,是否需要执行其他接线?在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

仔细检查源代码,确定该类是真正的服务还是src / groovy中的Groovy类。该框架将区别对待这两个。

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