Как получить экземпляр службы Grails программно? - PullRequest
10 голосов
/ 17 февраля 2010

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

Каков синтаксис для получения экземпляра этого сервиса программно с указанием имени сервиса в виде строки?

есть. учитывая "GoogleWeather", дайте мне экземпляр GoogleWeatherService.

Спасибо!

Ответы [ 2 ]

25 голосов
/ 20 июня 2013

Поскольку ApplicationHolder устарел, это еще один способ получить ApplicationContext:

ApplicationContext ctx = Holders.grailsApplication.mainContext 
18 голосов
/ 17 февраля 2010

Документация Grails описывает способ получения услуги в сервлете. Это может быть полезно, если вы можете получить те же объекты в вашем контексте:

ApplicationContext ctx = (ApplicationContext)ApplicationHolder.getApplication().getMainContext();
CountryServiceInt service = (CountryServiceInt) ctx.getBean("countryService");
String str = service.sayHello(request.getParameter.("name"));    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...