2010-05-11 6 views
2

application My Grails a le grain de printemps suivant défini dans spring/resources.groovydomaine initialisation de la classe Grails

calendarService(CalendarService) { bean -> 
    bean.initMethod = "init"  
} 

Cette méthode ressemble à:

class CalendarService { 
    void init() { 
     User.findByEmail("[email protected]") 
    } 
} 

Quand j'appelle le viseur dynamique findByEmail je reçois un MissingMethodException. Je suppose que j'essaie d'appeler cette méthode trop tôt, c'est-à-dire avant que les finders dynamiques aient été ajoutés à leur métaclasse. Une solution serait d'appeler moi-même CalendarService.init() de Bootstrap.init, plutôt que d'indiquer à Spring de l'appeler, mais y a-t-il une meilleure solution?

Merci, Don

Répondre

3

Vous avez raison, comme décrit dans ce post, si vous avez besoin des méthodes dynamiques que vous feriez mieux d'aller avec BootStrap.groovy

BootStrap { 
    def calendarService 
    def init() { 
     calendarService.init() 
    } 
} 
0

Les travaux suivants sans config dans resources.groovy

class CalendarService { 

    @PostConstruct 
    private void init() { 
     User.findByEmail("[email protected]") 
    } 
} 
Questions connexes