4.6---Spring框架之Spring的IoC(DI)理解(复习版本)

1.什么是IOC:

控制反转:指将对象的控制权转移给Spring框架,由 Spring 来负责控制对象的生命周期(比如创建、销毁)和对象间的依赖关系。
(就是创建对象的控制权,被反转到了Spring框架上。)

1.IoC的主要实现方式:依赖注入DI

2.IoC容器:具有依赖注入功能的容器,可以创建对象的容器。IoC容器负责实例化、定位、配置应用程序中的对象并建立这些对象之间的依赖。

最直观的表达就是:

以前创建对象的时机和主动权都是由自己把控的,如果在一个对象中使用另外的对象,就必须主动通过new指令去创建依赖对象,使用完后还需要销毁(比如Connection等),对象始终会和其他接口或类耦合起来。

而 IOC 则是由专门的容器来帮忙创建对象,将所有的类都在 Spring 容器中登记,当需要某个对象时,不再需要自己主动去 new 了,只需告诉 Spring 容器,然后 Spring 就会在系统运行到适当的时机,把你想要的对象主动给你

2.什么是DI

IoC 的一个重点就是在程序运行时,动态的向某个对象提供它所需要的其他对象,这一点是通过DI来实现的;
即应用程序在运行时依赖 IoC 容器来动态注入对象所需要的外部依赖。
而 Spring 的 DI 具体就是通过反射实现注入的,反射允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性

3.IoC的原理:

IoC 的实现原理就是工厂模式加反射机制

第一步:xml配置文件,配置创建的对象

<bean id="dao" class="com.zsh.UserDao"></bean>

第二步:有service类和dao类,创建工厂类

class UserFactory{
    public static UserDao getDao(){
        //1.xml解析 
        String classValue = class属性值;          
        //2.通过反射创建对象
        Class clazz = Class.forName(classValue);
        return (UserDao)clazz.getDeclaredConstructor().newInstance();
    }
}

你可能感兴趣的:(spring知识点总结篇,spring,java,后端)