在我的播放應用程序,我爲此在Module.configure()
:可以在應用程序啓動時阻止一個線程嗎?
bind(classOf[GadgetsReader]).toInstance(GadgetsCsvReader)
bind(classOf[Gadgets]).asEagerSingleton()
然後,我這樣做:
@Singleton
class Gadgets @Inject()(reader: GadgetsReader) {
val all:Seq[Gadget] = reader.readGadgets()
}
即同步加載一個大集合的小玩意從CSVfile到內存在啓動時,在一個Play的渲染線程。
我沒有看到Play實例中任何地方實現的類似場景。我想知道我在做什麼是慣用的斯卡拉&玩。
是否可以像這樣同步加載一個非常大的文件,因爲我不想在數據完全加載之前提供任何請求服務?
這是一件好事,我創建了Gadgets
類,然後注入它,而不是靜態/對象方法Gadget.all
?
應該Gadget
和Gadgets
上課生活在model
?
任何其他意見,也將不勝感激。
我已經在注射GadgetReader;是否需要注入Gadgets和GadgetReader? –