Inicialização da classe de domínio Grails
-
25-09-2019 - |
Pergunta
Meu aplicativo Grails tem o seguinte feijão definido em spring/resources.groovy
calendarService(CalendarService) { bean ->
bean.initMethod = "init"
}
Este método se parece com:
class CalendarService {
void init() {
User.findByEmail("foo@doo.com")
}
}
Quando eu chamo o Dynamic Finder findByEmail
Eu recebo um MissingMethodException
. Meu palpite é que estou tentando chamar esse método muito cedo, ou seja, antes que as aulas de domínio tenham os achados dinâmicos adicionados à sua metaclasse. Uma solução seria ligar CalendarService.init()
eu mesmo de Bootstrap.init
, em vez de instruir a primavera a chamá -la, mas existe uma solução melhor?
Obrigado, Don
Nenhuma solução correta
Outras dicas
Você está certo, como descrito neste publicar, se você precisar dos métodos dinâmicos, é melhor ir com o bootstrap.groovy
BootStrap {
def calendarService
def init() {
calendarService.init()
}
}
O seguinte funciona sem nenhuma configuração em resources.groovy
class CalendarService {
@PostConstruct
private void init() {
User.findByEmail("foo@doo.com")
}
}