Grails: Как вы делаете сервисы доступными внутри сервисов? - PullRequest
0 голосов
/ 16 ноября 2018

В настоящее время я сталкиваюсь с проблемой, когда пытаюсь использовать службу внутри службы, однако служба имеет значение null

class ApplicationService{
    def someService

    def someMethod(){
        someService.method()//null on someService
    }
}

Есть ли дополнительные проводки, которые мне нужно выполнить, чтобы это работало? Заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Самое вероятное объяснение, которое я здесь привожу, это то, что класс SomeService не является артефактом службы Grails, поэтому вы не можете просто внедрить его таким образом.

Дважды проверьте в исходном коде, действительно ли этот класс является службой или просто классом Groovy в src / groovy. Каркас будет относиться к этим двум по-разному.

Также не пытайтесь внедрить службу с помощью создания экземпляра вручную, как ваш ответ, это не правильный способ внедрения зависимости в Grails (или в Spring).

0 голосов
/ 16 ноября 2018

Мне удалось сделать это с помощью приложения grails и загрузки службы.

if(!someService){
    someService = grailsApplication.classLoader.loadClass("org.company.SomeService").newInstance()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...