Вопрос

Мое приложение Grails имеет следующий весенний фасоль, определенный в spring/resources.groovy

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

Этот метод выглядит что-то вроде:

class CalendarService {
    void init() {
        User.findByEmail("foo@doo.com")
    }   
}

Когда я называю динамический поиск findByEmail Я получаю MissingMethodException. Отказ Я предполагаю, что я пытаюсь вызвать этот метод слишком рано, то есть до доменных классов у динамических искателей добавляются в их метакласс. Одно решение было бы позвонить CalendarService.init() сам от Bootstrap.init, Не вместо того, чтобы наставить весну называть это, но есть ли лучшее решение?

Спасибо, Дон

Нет правильного решения

Другие советы

Вы правы, как описано в этом сообщение, Если вам нужны динамические методы, вам лучше пойти с bootstrap.groovy

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

Следующие работы без какого-либо конфига в resources.groovy

class CalendarService {

    @PostConstruct
    private void init() {
        User.findByEmail("foo@doo.com")
    }   
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top