我在将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()
来设置它,它就可以正常工作。
有人能给我指一个正确的方向,让我弄清楚这里的问题是什么吗?
感谢
您不应该将IncidentService添加到resources.groovy中。如果该服务在grails app/services下,它将为您完成。请删除它,然后重试。我认为这可能是你的问题