无法将grailsApplication注入服务中

时间:2012-07-31 15:54:50

标签: grails dependency-injection

我在将grailsApplication注入我在Grails 2.1中创建的服务时出现问题。我已经构建了一个简单的测试应用程序(希望我能解决这个问题,然后将修复程序移植到我的实际应用程序),该应用程序包含单个控制器,视图和服务。

控制器如下所示:

class IncidentController {

    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

    def incidentService

    def index() {
        incidentService.serviceMethod()
        redirect(action: "list", params: params)
    }

    // Other stuff
}

我的服务仅包含以下内容:

class IncidentService {

def grailsApplication

    def serviceMethod() {
        System.out.println("Grails application: " + grailsApplication)
    }
}

我声明在resources.groovy中注入IncidentService,如下所示:

beans = {
    incidentService(org.myorg.test.IncidentService)
}

现在我在网上看到的一切都说这应该可以正常工作,我应该可以通过服务中的grailsApplication访问我的配置。但是,每当我尝试时,grailsApplication都为null。如果我向服务添加ConfigObject并通过从控制器传递grailsApplication.getConfig()进行设置,则可以正常工作。

任何人都可以请我指出正确的方向,找出问题所在吗?

谢谢

1 个答案:

答案 0 :(得分:3)

您不必将IncidentService添加到resources.groovy。如果该服务在grails-app / services下,则会为您完成。删除它,然后再试一次。我想这可能是你的问题