我有一个名为Mailer
的服务和一个应该使用此服务的控制器:
class DocumentController {
def mailer
def publish = {
mailer.sendReport()
}
}
但是当我打电话给publish
时,我得到了:
java.lang.NullPointerException: Cannot invoke method sendReport() on null object
为什么依赖注入不起作用?
答案 0 :(得分:7)
Grails是关于约定的。我认为邮件程序需要被称为mailerService。它需要位于services目录中。控制器需要位于控制器目录中。
来自文档
“服务包含可以在Grails应用程序中重复使用的业务逻辑。在Grails中,服务是一个以约会”服务“结束并存在于grails-app / services目录中的类。服务可以是使用create-service命令创建:“