2010-02-16 23 views
10

Tôi có nguồn dữ liệu ngoài, sẽ trả về một chuỗi cho biết tên của dịch vụ Grails để sử dụng.Làm thế nào để tôi có được một thể hiện của một dịch vụ Grails theo lập trình?

Cú pháp để nhận một thể hiện của dịch vụ này được lập trình cho tên của dịch vụ dưới dạng Chuỗi là gì?

tức là. được cung cấp 'GoogleWeather', hãy cho tôi một bản sao của GoogleWeatherService.

Cảm ơn!

Trả lời

17

The Grails documentation mô tả cách nhận dịch vụ khi ở trong servlet. Điều này có thể hữu ích nếu bạn có thể lấy các đối tượng tương tự trong bối cảnh của bạn:

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

Đó là chính xác những gì tôi tìm kiếm! Cảm ơn – Thody

23

Kể từ ApplicationHolder đã bị phản đối, đây là một cách khác để có được những ApplicationContext:

ApplicationContext ctx = Holders.grailsApplication.mainContext 
Các vấn đề liên quan