Grails l'inizializzazione della classe di dominio
-
25-09-2019 - |
Domanda
Il mio Grails applicazione ha il seguente bean Spring definito spring/resources.groovy
calendarService(CalendarService) { bean ->
bean.initMethod = "init"
}
Questo metodo sembra qualcosa di simile:
class CalendarService {
void init() {
User.findByEmail("foo@doo.com")
}
}
Quando chiamo il findByEmail
dinamica cercatore ho un MissingMethodException
. La mia ipotesi è che sto cercando di chiamare questo metodo troppo presto, cioè prima che le classi di dominio hanno avuto i cercatori dinamici aggiunto al loro metaclasse. Una soluzione potrebbe essere quella di chiamare CalendarService.init()
me stesso da Bootstrap.init
, piuttosto che istruire primavera chiamarlo, ma c'è una soluzione migliore?
Grazie, Don
Nessuna soluzione corretta
Altri suggerimenti
Hai ragione, come descritto in questo posta , se avete bisogno di i metodi dinamici è meglio andare con BootStrap.groovy
BootStrap {
def calendarService
def init() {
calendarService.init()
}
}
I seguenti lavori senza alcuna configurazione nella resources.groovy
class CalendarService {
@PostConstruct
private void init() {
User.findByEmail("foo@doo.com")
}
}