Nowe instancje omijają zarządzanie zależnościami Spring; musisz pobrać skonfigurowany komponent singleton bean z kontekstu aplikacji. Użyj tego zamiast:
def service = ApplicationHolder.application.getMainContext().getBean("${property}Service")
który zakłada, że „własność” jest częściową nazwę fasola za usługę, to znaczy dla FooBarService, obiekt musiałby być „foobar”. Jeśli to „foobar” można użyć GrailsNameUtils.getPropertyName(), aby je naprawić: zajęcia domen
import grails.util.GrailsNameUtils
String beanName = GrailsNameUtils.getPropertyName(property) + 'Service'
def service = ApplicationHolder.application.getMainContext().getBean(beanName)
Yay, to działa. Próbowałem metody getBean, ale przekazywałem do niej "FooBar" :) – rukoche
Powyższe nie działało dla mnie, dopóki nie zastąpiłem '.getMainContext' z' .getMainContext(). ' – sebnukem
Dzięki, naprawiłem to po zobaczeniu, że twoje edycja została niepoprawnie odrzucona –