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

1、修改上一节的HelloServiceImpl

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

2、修改applicationContext.xml

  1. ...
  2. <bean id="helloService"
  3.         class="com.tianshouzhi.spring.HelloServiceImpl">
  4.     <property name="info" value="Dependency Injection"></property>
  5. </bean>
  6. ...

3、再次运行HelloServiceTest

控制台输出:

hello,spring:Dependency Injection

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

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

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/ 

06-15 12:36