zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    datagrid column width in silverlight.
    Dir你肿么了?是肿了么?越来越大?
    tut12几个简单的帧控制
    CreateThread(), _beginthread()和_beginthreadex()
    windows进程优先级
    Lingo06 Handler
    Lingo13 和Flash交互之getURL
    关于define活生生的SB实例,挂起来
    几个Director/Lingo站
    Lingo02 List
  • 原文地址:https://www.cnblogs.com/JachinYin/p/9172689.html
Copyright © 2011-2022 走看看