您好:我想在Guice用我需要的參數「補充」我的課程後立即開始一項操作。做這件事的慣用方法是什麼?是否有一個@after_running_constructor註釋...或類似的東西,我可以標記一個「post-guice」初始化方法?guice何時注入?
通常情況下,我只是在init()方法或構造函數本身中執行此操作,但事實證明Guice並沒有將必要的信息注入到我的類中,直到類的構造函數運行完畢。
您好:我想在Guice用我需要的參數「補充」我的課程後立即開始一項操作。做這件事的慣用方法是什麼?是否有一個@after_running_constructor註釋...或類似的東西,我可以標記一個「post-guice」初始化方法?guice何時注入?
通常情況下,我只是在init()方法或構造函數本身中執行此操作,但事實證明Guice並沒有將必要的信息注入到我的類中,直到類的構造函數運行完畢。
確保您的類獲得所有必需「參數」的唯一慣用方法是將這些參數傳遞給構造函數。 查看關於易變性的簡短討論here。
如果您在使用構造函數注入時遇到困難,因爲構造涉及注入和參數化,您可以使用工廠模式或AssistedInject。
如果要連接某些領域類,您需要知道Guice內部,我的猜測是您的方法應該重新訪問。
Guice不支持生命週期方法。一個類似的問題被問到here,那裏的人推薦了Guice擴展庫GuiceyFruit,但我不確定該項目是否已經被維護了。
此外,Guice注入的順序在文檔here中定義。
我很好奇,你爲什麼要爲你的類做構造函數和方法注入?我確定有一些用例,但是你可以通過僅使用構造函數注入來解決init()問題。
是的,這是真的 - 內部並不重要 - 他們更多的是問題的背景。謝謝 – jayunit100 2012-04-06 02:12:39