Grails initialisation de classe de domaine
-
25-09-2019 - |
Question
Mon application Grails a la fève de printemps suivant défini dans spring/resources.groovy
calendarService(CalendarService) { bean ->
bean.initMethod = "init"
}
Cette méthode ressemble à quelque chose comme:
class CalendarService {
void init() {
User.findByEmail("foo@doo.com")
}
}
Quand j'appelle le findByEmail
finder dynamique je reçois un MissingMethodException
. Je pense que je suis en train d'appeler cette méthode trop tôt, à savoir avant que les classes de domaine ont eu les trouveurs dynamiques ajoutés à leur métaclasse. Une solution serait d'appeler moi-même CalendarService.init()
de Bootstrap.init
, plutôt que l'instruction du printemps de l'appeler, mais est-il une meilleure solution?
Merci, Don
Pas de solution correcte
Autres conseils
Vous avez raison, comme décrit dans cette après, si vous avez besoin les méthodes dynamiques que vous feriez mieux d'aller avec BootStrap.groovy
BootStrap {
def calendarService
def init() {
calendarService.init()
}
}
Les travaux suivants sans config dans resources.groovy
class CalendarService {
@PostConstruct
private void init() {
User.findByEmail("foo@doo.com")
}
}