Как я могу получить экземпляр программы Grails программно?

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

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

т. "GoogleWeather", дайте мне пример GoogleWeatherService.

Спасибо!

Ответ 1

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

ApplicationContext ctx = (ApplicationContext)ApplicationHolder.getApplication().getMainContext();
CountryServiceInt service = (CountryServiceInt) ctx.getBean("countryService");
String str = service.sayHello(request.getParameter.("name"));    

Ответ 2

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

ApplicationContext ctx = Holders.grailsApplication.mainContext