ioc是什么意思?IOC的原理及手动实现

IOC是什么意思(IOC原理及手动实现)介绍
【ioc是什么意思?IOC的原理及手动实现】是一个分层的/EE全栈(一站式)轻量级开源框架 。它也是几乎所有Java工作者都必须掌握的框架之一 。它优秀的设计思想和代码实现的艺术也是我们需要掌握的 。
要学习,除了在我们的项目中使用之外,还需要学习它的源码,但是实现涉及到很多知识,加上里面的类的数量也非常多,在我们阅读源码之前代码当你在几十个类之间阅读时,很可能会不小心导致混淆 。
有鉴于此,我这里对几个重要模块做一个手动简单的实现 。首先,我熟悉了这些模块的原理,同时也在模仿结构,为以后阅读源码打好基础 。
国际奥委会(的)
of是控制反转,意思是把客户端代码创建的对象交给IOC容器进行控制 。对象的创建、初始化及后续管理均由IOC完成 。
国际奥委会的好处
解耦:IOC的出现解决了类之间的耦合 。在web开发时代,如果需要依赖另一个类的某个实现,那么我们需要在当前类中创建依赖类并初始化,如果其他类也依赖这个类,也需要创建并初始化初始化,如果交给IOC管理,那么只需要在需要的时候向IOC申请,不需要重复创建和初始化 。当然,IOC 也允许每次重新创建一个新对象 。
轻松配合AOP:AOP也是一个非常常用的功能,通过IOC配合AOP可以非常方便 。
IOC 中的设计模式
工厂模式 。IOC容器负责创建管理类实例对象,在需要时向IOC申请,并从IOC获取 。所以IOC容器也叫bean。
工厂模式是一种比较简单易懂的设计模式 。这里就不介绍了 。有需要的可以看一下工厂模式 。
IOC手动实现Bean定义
IOC的主要功能是管理bean,包括创建、初始化、管理和销毁 。我们面临的第一个问题是我们如何允许 IOC 创建一个 Bean?为了创建 bean,我们需要提供什么?
如何创建一个 Bean
有两种方法可以创建类实例的对象,而无需使用 new 关键字手动创建:
publicclassPersonFactory{publicPersongetPerson(){returnnewPerson();}}
为了创建一个 bean,我们需要提供什么

ioc是什么意思?IOC的原理及手动实现

文章插图
通过分析以上两种方法,很容易找到答案 。
反射方法我们只需要提供实例的Class对象即可 。
对于工厂方法,我们只需要提供工厂名()和方法名()来创建类;
除了创建bean还需要做什么
IOC 容器管理 bean 的整个生命周期 。除了创建之外,还需要初始化bean,在不需要的时候(比如释放资源等)销毁bean 。所以我们还需要提供初始化和销毁??等操作 。
创建bean所需的基本分析到这里就完成了,看类图:
ioc是什么意思?IOC的原理及手动实现

文章插图
豆工厂
Bean的定义解决了,但是bean定义和创建的Bean实例应该放在哪里呢?我们需要一个统一的地方来存放这些东西,以便我们在使用时方便取用 。
我们定义了一个bean 来存储bean,需要的时候可以从bean 中取出 。bean工厂只提供了获取bean的方法 。由于 bean 的类型不确定,所以定位返回值 。.
注册 Bean 定义
现在我们有了一个用于创建 bean 的 bean 定义和一个用于存储和管理 bean 的 bean 工厂 。现在我们需要考虑如何连接这两个类 。我们还需要另一个接口 。接口的作用是让我们可以注册和获取bean定义,这里我们通过来区分不同的bean 。
ioc是什么意思?IOC的原理及手动实现