복붙노트

[SPRING] 프로그래밍 방식으로 Grails 서비스의 인스턴스를 얻으려면 어떻게해야합니까?

SPRING

프로그래밍 방식으로 Grails 서비스의 인스턴스를 얻으려면 어떻게해야합니까?

외부 데이터 소스가 있는데, 사용할 Grails 서비스의 이름을 나타내는 문자열을 반환합니다.

서비스 이름을 문자열로 지정하여이 서비스의 인스턴스를 프로그래밍 방식으로 가져 오는 구문은 무엇입니까?

즉. 'GoogleWeather'가 있으면 GoogleWeatherService의 인스턴스를 제공합니다.

감사!

해결법

  1. ==============================

    1.Grails 문서는 서블릿에있을 때 서비스를 얻는 방법을 설명합니다. 컨텍스트에서 동일한 개체를 얻을 수 있으면이 방법이 유용 할 수 있습니다.

    Grails 문서는 서블릿에있을 때 서비스를 얻는 방법을 설명합니다. 컨텍스트에서 동일한 개체를 얻을 수 있으면이 방법이 유용 할 수 있습니다.

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

    2.ApplicationHolder가 더 이상 사용되지 않으므로 ApplicationContext를 가져 오는 또 다른 방법입니다.

    ApplicationHolder가 더 이상 사용되지 않으므로 ApplicationContext를 가져 오는 또 다른 방법입니다.

    ApplicationContext ctx = Holders.grailsApplication.mainContext 
    
  3. from https://stackoverflow.com/questions/2276624/how-do-i-get-an-instance-of-a-grails-service-programmatically by cc-by-sa and MIT license