1.2 依赖注入(DI)快速入门

2016-08-03 23:16:37 5,736 0

DI:Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件。

1、修改上一节的HelloServiceImpl

public class HelloServiceImpl implements HelloService {
    private String info;//没有初始化,spring会自动将配置的属性值赋给这个变量
    public void setInfo(String info) {
        this.info = info;
    }
    public void sayHello(){
        System.out.println("hello,spring:"+info);
    }
}

2、修改applicationContext.xml

...
<bean id="helloService"
        class="com.tianshouzhi.spring.HelloServiceImpl">
    <property name="info" value="Dependency Injection"></property>
</bean>
...

3、再次运行HelloServiceTest

控制台输出:

hello,spring:Dependency Injection

可以发现,这种利用spring注入属性值,不需要修改源代码。

而在传统写法中,由于实现类发生了向上转型,不能直接调用setInfo方法,因此如果要实现同样的效果,必须修改源代码—即spring修改了实现类,不需要修改其他地方的代码,只需修改配置文件;而传统方式中,修改了实现类之后,必须还要修改其他源代码。