Spring系列(1)--IOC 和 DI
IOC 和 DI
IOC 原理
-
xml 配置文件配置 bean
-
dom4j 读取配置文件
-
工厂设计模式
-
反射机制创建对象
applicationContext.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="user" class="x.y.User"></bean>
</beans>
JavaBean User.java:
package x.y;
class User{
private int id;
private String name;
public void setID(int id){
this.id = id;
}
public Int getID(){
return id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
以上就是根据 JavaBean 进行配置文件的最简单配置。接下来是工厂设计模式+反射机制创建对象的过程,只需了解这一过程,并不是完整的源代码:
Factory.java:
public class Factory{
public static User getBean(){
// 通过 dom4j 解析 XML 文件
// 根据 id 得到 class 属性值
String classValue = "";
// ;利用反射创建对象
Class clazz = Class.forName(classValue);
return clazz.newInstance();
}
}
IOC 和DI的区别
IOC:控制反转,将对象创建交给 Spring 进行配置
DI:依赖注入,向类中的属性注入值
关系:控制反转是依赖注入的前提,也就是说,没有 IOC 的话,也就不存在 DI