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")
    }   
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top