1
使用Spring,我可以得到使用此當前定義的某種類型的所有豆類:依類型使用泛型的依賴注入 - 它是如何工作的?
@Resource
private List<Foo> allFoos;
如何春季做到這一點?我認爲泛型的類型信息在運行時被刪除。那麼Spring如何知道列表的類型Foo
,並且只注入正確類型的依賴關係?
舉例說明:我沒有包含其他bean的「List」類型的bean。相反,Spring會創建該列表並將所有正確類型的beans(Foo
)添加到該列表中,然後注入該列表。
1)類型的擦除發生在編譯時,*不*在運行時; 2)在字段和方法/構造函數參數聲明中指定的所有類型都由編譯器完全保留在字節碼中,並且在運行時通過Java Reflection API提供。所以,Spring通過從相應的java.lang.reflect.Field對象中獲取'allFoos'字段的元素類型來完成它。 – 2015-08-23 17:08:01