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,如需转载请自行联系原作者