2012-03-03 32 views
1

我正在構建一個依賴注入框架,並且該過程的一部分包括循環遍歷類路徑中的所有類文件,並在枚舉對象中存儲具有特定批註的批註類。就依賴注入而言,當一個類加載時,它找到所有@inject表示法,然後搜索所有包含@injectResource表示法的類,然後返回我需要執行DI部分的方法值。在運行時通過全局變量對特定類進行迭代

我的問題是,在編譯時構建枚舉類列表似乎更合理,這樣當我的注入字段需要搜索這些類時,我不必每次都搜索項目中的每個類。

我想我會在編譯時通過servlet配置構建類列表,但我可以在哪裏存儲這個「全局」列表,以便我可以在整個項目中重複訪問它?我想在編譯時我會創建一個靜態類,其中包含枚舉列表,但我不喜歡使用靜態類,我不確定這是否是最優化的方法。

+0

應用程序上下文?儘管如果它不變,誰在乎它是否是單身/「靜態類」呢?不管怎樣,如果有一個記錄系統,它是一個單例/「靜態類」/等等。 - 不要陷入思維陷阱中,這對他們來說永遠不會有用處。 – 2012-03-03 21:02:50

回答

-1

順便說一下,您可以使用Servlet上下文,爲什麼每次創建新類時都要重新掃描所有類?爲什麼你不要一次引用類,並使用它們(而不是對類列表進行硬編碼)?

+0

這正是這個問題所在。但是我不能通過一個標準的java類訪問servlet上下文,並且首先傳遞一個引用使得依賴注入框架的目的失敗。 – ryandlf 2012-03-04 16:18:38

+0

如何訪問標準Java類中的DI容器?它是通過調用靜態方法嗎? – 2012-03-04 20:33:20