6
我想構建自己的基於Java註釋的自定義DI框架,我需要一個小小的方向開始。我知道使用諸如guice或spring之類的許多精彩框架中的一個會容易得多,但爲了我自己的好奇心,我想構建自己的框架。依賴注入與註解
我對註釋不是很熟悉,所以我在查找資源時遇到了一些問題,並且非常感謝某人解釋了我需要採取的一些步驟來開始。
如前所述,id喜歡採取工廠方法,並以某種方式將我的getter標記爲@Resource或@Injectable類型註釋,然後在我的業務類中可以使用@Inject註釋設置我的變量依賴項,資源自動可用。
有沒有人有任何資源可以傳遞,以幫助我理解基於註釋標記方法的過程,然後從基於註釋的單獨類中檢索值。我需要一個小小的方向,讓我開始。當然,一旦我走了,我會很高興在這裏發佈一些代碼示例,爲了其他人今後的閱讀。
編輯
我使用的資源放在了一起:
How to find annotations in a given package: Stack Overflow ?
Scanning Annotations at Runtime
我還沒有真正完成還沒有寫這個,但基本任務李ST將是如下(的人誰可能有興趣做,今後類似的東西)
在類運行時掃描所有@Inject領域,並得到對象類型。
對註釋方法@InjectableResource掃描所有類(或只是一個特定的類包(我還沒有確定 )))。
循環所有帶註釋的方法,並找到返回我要查找的對象類型的 方法。
運行該方法並獲得依賴關係。
注意到在掃描所有類時我將使用一個名爲Javassist的庫也會很有幫助。基本上,這樣做可以讓我在不實際加載類的情況下讀取每個類的字節碼信息。所以我可以讀取註釋字符串而不會產生嚴重的內存問題。
可以與標準甲骨文註釋步道】開始(http://docs.oracle.com/javase/tutorial/java/javaOO/annotations.html)。您需要一些方法來掃描整個類路徑中的資源,一種方式是使用像[Google Reflections](http://code.google.com/p/reflections/)這樣的工具。最後,