一、简介
SpringIOC控制反转又称为依赖注入,是一种重要的面向对象编程法则,作用是消减耦合问题,是轻量级Spring框架的核心。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
二、SpringIOC实例
首先写一个没使用spring的实例
张三、李四两个人,javaWork派谁去做测试,最后在Test打印出来
比如张三做测试
然后Test打印出来
可是当我们需要李四做测试时,JavaWord.java要全部改变
打印
这样的话每当我们换一个人都要重写new一个对象,破坏程序完整性,麻烦,使用springIOC控制反转(依赖注入)换人工作就简单很多
首先我们定义一个接口Tester,里面由一个test()方法
然后张三李四都继承接口并且实现里面的test()方法
zhangsan
lisi
然后在JavaWork定义一个Tester,有set方法
最后在Test中的main方法中确定谁做测试
张三测试
这样还不是很方便,我们可以用bean.xml管理对象实例
bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="zhangsan" class="com.java.service.zhangsan"> </bean>
<bean id="lisi" class="com.java.service.lisi"> </bean>
<bean id="javawork" class="com.java.service.JavaWork">
<!-- 这里的那么要和定义的private Tester tester;名字相同不然会报错 -->
<!-- 这里的依赖注入ref="", 把李四或者张三对象注入进去-->
<property name="tester" ref="zhangsan"></property>
</bean>
</beans>
Test.java
package com.java.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.java.service.JavaWork;
public class Test {
public static void main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");
JavaWork javaWork=(JavaWork)ac.getBean("javawork");
javaWork.doTest();
}
}
这样我们需要谁做测试,不需要改动任何代码,只需要修改配置文件