2010-02-16 4 views
10

Mam zewnętrzne źródło danych, które zwróci ciąg znaków wskazujący nazwę usługi Grails do użycia.Jak programowo uzyskać wystąpienie usługi Grails?

Jaka jest składnia, aby uzyskać wystąpienie tej usługi, programowo podając nazwę usługi jako ciąg?

tj. biorąc pod uwagę "GoogleWeather", podaj instancję GoogleWeatherService.

Dzięki!

Odpowiedz

17

The Grails documentation opisuje sposób na uzyskanie usługi w serwletu. Może to być przydatne, jeśli można uzyskać te same obiekty w swoim kontekście:

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

To jest dokładnie to, co ja szukasz! Dzięki – Thody

23

Od ApplicationHolder została zaniechana, jest to kolejny sposób, aby uzyskać ApplicationContext:

ApplicationContext ctx = Holders.grailsApplication.mainContext