Grails Domain-Klasse Initialisierung
-
25-09-2019 - |
Frage
Meine Grails App hat folgende Spring-Bean in spring/resources.groovy
definiert
calendarService(CalendarService) { bean ->
bean.initMethod = "init"
}
Diese Methode sieht etwa so aus:
class CalendarService {
void init() {
User.findByEmail("foo@doo.com")
}
}
Wenn ich den dynamischen Finder findByEmail
nennen erhalte ich eine MissingMethodException
. Meine Vermutung ist, dass ich versuche, diese Methode zu nennen zu früh, das heißt, bevor die Domain-Klassen, die dynamischen Findern ihrer metaclass hinzugefügt haben. Eine Lösung wäre CalendarService.init()
mich anrufen von Bootstrap.init
, anstatt Frühling anweist es zu nennen, aber gibt es eine bessere Lösung?
Danke, Don
Keine korrekte Lösung
Andere Tipps
Du hast recht, wie beschrieben in diesem Post , wenn Sie brauchen die dynamischen Methoden, die Sie besser mit BootStrap.groovy
gehen würdeBootStrap {
def calendarService
def init() {
calendarService.init()
}
}
Die folgenden Arbeiten ohne config in resources.groovy
class CalendarService {
@PostConstruct
private void init() {
User.findByEmail("foo@doo.com")
}
}