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

IOC(控制反转)是指将对象的创建和管理交给Spring框架,实现对象生命周期和依赖关系的管理。DI(依赖注入)是IOC的重点,通过容器动态地向对象提供其需要的依赖。Spring通过XML配置、反射实现对象的创建和依赖注入。IoC的实现基于工厂模式和反射,简化了对象之间的耦合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值