spring di/ioc的初步理解

如果有疑问和不太懂的,可以提问。我也是初学者,大家互相交流,互相进步
引用博客 https://blog.csdn.net/A__B__C__/article/details/90738309
https://blog.csdn.net/GoGleTech/article/details/79557416
一.问题
我们之前写代码需要调用其它类的方法时,一般直接new(实列化)。平时看不出什么,但当写出一个完整的项目时发现,每次页面进行一个操作后台就会实列化出很多对象,占了大量的空间。更严重的是将项目部署到服务器进行多人操作,就会进行崩溃。

二.解决
在学了spring后,spring bean容器解决了这个问题。
bean容器通过xml配置将每个类进行实列化存入到容器中,需要的时候从中取出。或者注入到需要的类中。这一过程体现了di/ioc概念。
spring di/ioc的初步理解
三.什么是ioc
IOC的全称为 Inversion of Control ,被称为控制反转。
初学者刚开始写项目是一个一个的实列化对象,而ioc有一个容器,这个容器负责创建实例化对象,在适当的时候主动将对象给需要依赖这个对象的类。

控制反转
控制的就是 IOC容器控制对象的创建,代替传统手动new一个对象。
反转:有反转就有正转,像我们的传统方法,自己需要什么就自己动手去创建什么,这个就是正转;而通过容器控制对象的创建以及依赖对象的注入,这个过程就是反转。因为是容器帮我们查找并注入依赖对象,所以对象只是被动的接收依赖对象,所以叫做反转。反转的就是依赖对象获取的过程。

IOC不是技术是一种思想。就比如平常找女朋友,碰到喜欢的人需要通过各种方法去要人家联系方式来接触她,但这种找女朋友方式通常很慢很费时还有可能人家根本不理你,浪费大量的时间,就跟实列化对象一样,需要手动一个一个new,还有可能出错,而有了婚介所(也就是容器),可以直接去婚介所留一份信息,通过婚介所来介绍,成功率大,还不需要浪费时间。

四.DI
DI的全称为Dependency Injection,即“依赖注入”:是组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现

简单来说就是业务层需要持久层的对象,那么就通过IOC容器注入进去。依赖ioc容器将对象注入到需要的类中(个人理解)
如果有疑问和不太懂的,可以提问。我也是初学者,大家互相交流,互相进步