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

posted @ 2018-06-12 14:01  JachinYin  阅读(170)  评论(0编辑  收藏  举报