Spring的依赖注入是指一个java类(调用者)调用另外一个java类(被调用者)的过程是在spring配置文件中完成的,既在配置文件中完成调用者的实例,然后再注入被调用者。下面以一个简单例子说明。
注:所谓的控制反转和依赖注入是同一概率。调用者调用被调用者的工作交给spring来做,就叫控制反转。依赖注入如上所说,就是在spring配置文件的调用者的实例中注入被调用者。
Bean.xml
< beans > <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<!-- 调用者实例 -->

    < 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
public interface City {

    public void describCity();

}

 

View.java

public interface View {

    public String describe();

}

 

Fengshan.java (继承于 City 接口) :

public class  Fengshan implements City {

    private View view ;

    // 默认构造方法

    public Fengshan(){

    }

    // 设置注入所需的 setter 方法

    public void setView(View view) {

       this . view = view;

    }

    // 实现接口的方法

    public void describCity() {

       System. out .println( view .describe());

    }

}

FengshanView.java( 继承于 View 接口 ):

public class FengshanView implements View{

    public FengshanView(){}

    public String describe() {

       return " 凤山很漂亮 " ;

    }

}

 

Test.java( 测试类 ):

public class Test extends TestCase {

    public void test(){

ApplicationContext ctx = new FileSystemXmlApplicationContext( "bean.xml" );

       City city = (City) ctx.getBean( "fengshan" );

       city.describCity();

    }

}