Spring——什么是IOC?

本文详细介绍了Spring的IOC(控制反转)原理,包括高内聚、低耦合的设计原则,IOC的概念及其核心——依赖注入,使用IOC的目的在于降低对象间的耦合度,以及IOC的实现过程和底层的XML解析、工厂模式和反射机制。还提到了Spring提供的BeanFactory和ApplicationContext接口在IOC容器中的角色。此外,文章还列出了Spring相关的一系列主题,如AOP和事务管理。

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

一、原则

高内聚、低耦合

二、什么是IOC?

Inversion of Control控制反转,把对象创建和对象之间的调用过程,交给spring进行管理

IOC的核心是什么?

通过依赖注入(Dependency Injection)来实现对象之间的解耦。依赖注入是指在创建对象时,将其所依赖的其他对象的引用注入到对象中,而不是由对象自己去创建或查找依赖的对象。这样可以降低对象之间的耦合度,提高代码的可维护性和可测试性

三、使用IOC的目的是什么?

降低耦合(谁和谁的耦合??如何降低的?)

  • 原来:如果依赖的类改变,被依赖的类也需要改动

  • 现在:直接修改配置文件

四、IOC过程

  1. xml配置文件,配置创建的对象

  1. 通过反射读取配置文件

  1. 实例对象

 

五、IOC底层原理

  • xml解析

  • 工厂模式

  • 反射(通过得到字节码文件操作文件)

  1. IOC就是控制反转,指创建对象的控制权进行转移,原来是由用户自己去创建对象,现在是spring去进行创建并管理,整个bean的生命周期从创建到销毁的过程全部都是由容器来管理(bean的生命周期),以前创建对象的主动权和时机都是由用户自己去进行把控的,但是现在这种权利都交给了spring容器,并且由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,这样的好处就是对象和对象之间的松耦合,并且也有利于功能的一个复用。保证了不把对象的创建写死在类里,更加的灵活。
  2. 前面也说到了IOC让对象的创建不用去new,可以由spring自动生产,Spring使用了Java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象并调用对象的方法;
  3. Spring中的DI也就是依赖注入和控制反转是同一个概念,但是不同角度的描述,DI是应用程序在运行时去依赖IOC容器来动态的注入对象需要的外部资源,对对象的属性进行赋值,比方说常见的注入方式有set注入和构造器注入,注解注入(@Autowired、@pupulateBean)
  4. IOC让相互协作的组件之间保持松散的一个偶合,合编成与你把遍布与应用刚才的功能分离出来,形成可重用的功能组件


 

六、IOC(接口)

容器的本质就是一个工厂

Spring提供IOC容器实现两种方式:(两个接口)

  1. BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用,用的时候才创建(节约资源)

  1. ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用。加载配置文件的时候 (需要结合项目是spring,耗时耗资源的在服务器启动的时候就创建,在服务器启动的时候就去加载配置文件创建对象)


Spring系列文章:

Spring——是什么?作用?内容?用到的设计模式?

Spring——Bean管理-xml方式进行属性注入

Spring——Bean管理-注解方式进行属性注入

Spring——什么是IOC?

Spring——AOP是什么?如何使用?

Spring——什么是事务?传播行为?事务隔离级别有哪些?

Spring——整合junit4、junit5使用方法

如果有想要交流的内容欢迎在评论区进行留言,如果这篇文档受到了您的喜欢那就留下你点赞+收藏脚印支持一下博主~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小乔努力变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值