【发布时间】:2017-04-11 14:58:21
【问题描述】:
我有一个带有 populate() 方法的事件控制器,该方法将事件从 JSON 链接添加到我的数据库。我希望这发生在我的服务器启动时。
我在我的 Bootstrap 文件中尝试了各种方法。如:
def event = new EventController.populate()
【问题讨论】:
标签: grails controllers
我有一个带有 populate() 方法的事件控制器,该方法将事件从 JSON 链接添加到我的数据库。我希望这发生在我的服务器启动时。
我在我的 Bootstrap 文件中尝试了各种方法。如:
def event = new EventController.populate()
【问题讨论】:
标签: grails controllers
您确实应该将该代码移入服务并移出控制器。这为您提供了更多选择,包括将服务注入您的 Bootstrap.groovy 并在应用程序启动时调用该方法。
这是一个更合适的 Grails 解决方案。
【讨论】:
org.springframework.beans.factory.InitializingBean 接口,它允许您将代码放入afterPropertiesSet 方法中。一旦在应用程序的上下文中创建了 bean,这将运行。当您不想依赖Bootstrap.groovy 时,这很有用。就像另一个例子。服务在您的用例之外也有自己的用处。它们是单例的,通常是无状态的,可以注入到其他服务、控制器、标签库,甚至是域类中。此外,它们也很容易测试。