2

我的 Grails 应用程序定义了以下 Spring beanspring/resources.groovy

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

这个方法看起来像:

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

当我调用动态查找器时findByEmail,我得到一个MissingMethodException. 我的猜测是我试图过早地调用此方法,即在域类将动态查找器添加到它们的元类之前。一种解决方案是从 调用CalendarService.init()自己Bootstrap.init,而不是指示 Spring 调用它,但是有更好的解决方案吗?

谢谢,唐

4

2 回答 2

3

没错,如本文所述如果您需要动态方法,最好使用 BootStrap.groovy

BootStrap {
    def calendarService
    def init() {
        calendarService.init()
    }
}
于 2010-05-11T13:42:21.680 回答
0

以下工作没有任何配置resources.groovy

class CalendarService {

    @PostConstruct
    private void init() {
        User.findByEmail("foo@doo.com")
    }   
}
于 2014-05-26T23:57:36.263 回答