Spring的依賴注入是指一個java類(調用者)調用另外一個java類(被調用者)的過程是在spring配置檔案中完成的,既在配置檔案中完成調用者的執行個體,然後再注入被調用者。下面以一個簡單例子說明。
注:所謂的控制反轉和依賴注入是同一機率。調用者調用被調用者的工作交給spring來做,就叫控制反轉。依賴注入如上所說,就是在spring配置檔案的調用者的執行個體中注入被調用者。
Bean.xml:
<beans>
<!--調用者執行個體-->
<bean id="fengshan" class="com.dvnchina.test.Fengshan">
<!--注入被調用者-->
<property name="view">
<ref local="fengshanView"/>
</property>
</bean>
<!--被調用者執行個體-->
<bean id="fengshanView" class="com.dvnchina.test.FengshanView"/>
</beans>
City.java:
<b>public</b> <b>interface</b> City {
<b>public</b> <b>void</b> describCity();
}
View.java
<b>public</b> <b>interface</b> View {
<b>public</b> String describe();
Fengshan.java(繼承于City接口):
<b>public</b> <b>class</b> Fengshan <b>implements</b> City {
<b>private</b> View view;
//預設構造方法
<b>public</b> Fengshan(){
}
//設定注入所需的setter方法
<b>public</b> <b>void</b> setView(View view) {
<b>this</b>.view = view;
//實作接口的方法
<b>public</b> <b>void</b> describCity() {
System.out.println(view.describe());
FengshanView.java(繼承于View接口):
<b>public</b> <b>class</b> FengshanView <b>implements</b> View{
<b>public</b> FengshanView(){}
<b>public</b> String describe() {
<b>return</b> "鳳山很漂亮";
Test.java(測試類):
<b>public</b> <b>class</b> Test <b>extends</b> TestCase {
<b>public</b> <b>void</b> test(){
ApplicationContext ctx = <b>new</b> FileSystemXmlApplicationContext("bean.xml");
City city = (City) ctx.getBean("fengshan");
city.describCity();
<a href="http://down.51cto.com/data/2351426" target="_blank">附件:http://down.51cto.com/data/2351426</a>
本文轉自 yzzh9 51CTO部落格,原文連結:http://blog.51cto.com/java999/120121,如需轉載請自行聯系原作者