2013-08-30 63 views
0

在春依賴注入here是否測試類創建實現在春天依賴注入注入

Whne最後的測試類運行這個例子中,該行後:

MySpringBeanWithDependency test = (MySpringBeanWithDependency) factory 
     .getBean("mySpringBeanWithDependency"); 

哪一個實現作家類將被注入?測試類仍然負責創建一個實際的實現並在Writer上調用業務方法之前注入它。這是真的嗎?

回答

0

在基於註釋的示例和基於XML的示例中,Spring都會將NiceWriter bean注入到MySpringBeanWithDependency bean中。

對於註釋例如,這是因爲NiceWriter類與@Service註釋(而Writer類不是)和彈簧將通過類路徑掃描發現這一點,它自動裝配成MySpringBeanWithDependency

對於XML示例,這是因爲NiceWriter類用於定義ID爲writer的bean,該bean被引用爲ID爲mySpringBeanWithDependency的bean的「writer」屬性。

在這兩種情況下,MySpringBeanWithDependency bean都是通過Spring注入的依賴項實例化的,因此可以使用。它是而不是負責管理其IWriter依賴項。這就是爲什麼依賴注入(簡稱DI)通常與控制反轉(簡稱IoC)聯合使用。 Spring提供了一個使用DI的IoC容器。