我有一个名为Mailer
的服务和一个 Controller ,应使用此服务:
class DocumentController {
def mailer
def publish = {
mailer.sendReport()
}
}
但是当我调用
publish
时,我得到:java.lang.NullPointerException: Cannot invoke method sendReport() on null object
为什么依赖项注入(inject)在这里不起作用?
最佳答案
Grails与约定有关。我认为邮递员需要称为mailerService。它必须在services目录中。 Controller 必须位于controllers目录中。
从文档中
“服务包含可在Grails应用程序中重复使用的业务逻辑。在Grails中,服务是一个以约定“Service”结尾并且位于grails-app / services目录中的类。可以使用create-service命令:“