Внедрение зависимостей Grails через автопроводку не работает - PullRequest
4 голосов
/ 20 января 2011

У меня есть служба с именем Mailer и контроллер, который должен использовать эту службу:

class DocumentController {

    def mailer

    def publish = {
        mailer.sendReport()
    }

}

Но когда я звоню publish, я получаю:

java.lang.NullPointerException: Cannot invoke method sendReport() on null object

Почему здесь не работает внедрение зависимостей?

1 Ответ

7 голосов
/ 20 января 2011

Grails это все о конвенциях.Я думаю, что почтовик должен называться mailerService.Это должно быть в каталоге услуг.Контроллер должен находиться в каталоге контроллеров.

Из документации

"Служба содержит бизнес-логику, которую можно повторно использовать в приложении Grails. В Grails служба - это класс, который заканчиваетсяв соглашении «Служба» и находится в каталоге grails-app / services. Службу можно создать с помощью команды create-service: «

...