我的Grails应用程序有在spring/resources.groovy定义的以下的Spring bean

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

此方法看起来是这样的:

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

当我打电话动态取景器findByEmail我得到一个MissingMethodException。我的猜测是,我试图调用此方法太早,域类不得不加入到他们的元类的动态发现者即之前。一个解决办法是从CalendarService.init()调用Bootstrap.init自己,而不是指示Spring来称呼它,但有一个更好的解决方案?

谢谢, 唐

没有正确的解决方案

其他提示

您说的没错,在这个帖子描述,如果您需要动态方法,你最好与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