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")
    }   
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top