2017-04-11 26 views
0

我有一個帶有populate()方法的事件控制器,它將JSON鏈接中的事件添加到我的數據庫中。我希望這在我的服務器啓動時發生。啓動時執行控制器方法(Grails)

我在我的Bootstrap文件中嘗試了各種各樣的東西。如:

def event = new EventController.populate() 

回答

1

您確實應該將該代碼移入服務並從您的控制器中移出。這爲您提供了更多選擇,包括將服務注入Bootstrap.groovy並在啓動應用程序時調用該方法。

這是一個更合適的Grails解決方案。

+0

還有什麼其他選擇可以把它放在服務中給我?我是Grails的新手 –

+0

服務還可以實現'org.springframework.beans.factory.InitializingBean'接口,它允許您將代碼放入'afterPropertiesSet'方法中。一旦在應用程序的上下文中創建了bean,它就會運行。當你不想依賴'Bootstrap.groovy'時,這很有用。就像另一個例子。服務在你的用例之外也有自己的用處。它們是單身的,通常是無狀態的,可以注入其他服務,控制器,標籤庫,甚至域類。另外他們也很容易測試。 –