最近我發現有些地方有@Inject
註解。它可以注入類。爲@Inject註釋提供注入的最簡單方法是什麼?
如何從提供者端使用它?
假設我希望能寫
class MyClass1 {
@Inject
MyType2 variable;
}
如何使它工作?什麼是絕對必需的?
如果MyType2
是抽象類的接口呢?
最近我發現有些地方有@Inject
註解。它可以注入類。爲@Inject註釋提供注入的最簡單方法是什麼?
如何從提供者端使用它?
假設我希望能寫
class MyClass1 {
@Inject
MyType2 variable;
}
如何使它工作?什麼是絕對必需的?
如果MyType2
是抽象類的接口呢?
的@Inject註解在JSR 330規定:Java依賴注入(鏈接:JSR330)在各種應用服務器上託管的應用程序的Web容器使用
它。
依賴注入爲變量提供了一個代理類,直到它真的被使用。那麼容器將注入相關的類並可以使用它。 所以你需要一個容器,因爲它的任務是將類注入注入點。
如果你想使用依賴注入在Java SE環境中,你可以檢查出谷歌吉斯(鏈接:Google Guice)
「如果MyType2是什麼抽象類的接口?」
它根本不可能實例化一個抽象類,所以我想它會失敗。
「MyType2」可以用一些後代和/或實現者實例化 – Dims
您需要像Spring,Guice或CDI這樣的依賴注入框架。 –
那麼爲什麼'@Inject'是在主Java EE庫中定義的? – Dims
因爲CDI是Java EE的核心部分。 –