• Spring-IOC


    IOC 简介

    IOC (Inversion Of Control),译为“控制反转”。
    它不是一门技术,它是一个设计思想,一个重要的面向对象编程法则,能够指导我们如何设计出 松耦合、优良的程序。

    • “IOC” 是一种设计思想
    • “IOC” 是为了降低程序的耦合度,提高程序的拓展能力
    • 控制反转,反转的是什么?
      • 将对象的创建权力交出去,交给第三方容器负责。
      • 将对象与对象之间的关系的维护权交出去,交给第三方容器管理。
    • 控制反转 这种思想通过DI(Dependency Injection)依赖注入 实现。

    DI 依赖注入 简介

    DI 依赖注入 实现了 IOC 控制反转的思想。

    • 指Spring创建对象的过程中,将对象依赖属性通过配置进行注入
    • 常见的依赖注入方式
      • setter 注入
      • 构造 注入

    结论:IOC 是一种控制反转的设计思想,而 DI 是实现 IOC 控制反转 设计思想的一种具体方式。

    Bean管理:Bean 对象的创建,以及Bean对象中属性的赋值(Bean对象之间的关系维护)

    Spring IOC 容器 简介

    Spring 通过 IOC 容器来管理所有Java对象的实例化和初始化,控制对象和对象之间的依赖关系。

    我们将由IOC容器管理的Java对象称为Spring Bean,它与使用关键字new创建的Java对象没有任何区别

    Spring IOC 容器 相关工作流程

    首先,IOC容器中,放置的是我们业务场景所需要的Bean实例对象。
    一般来说,我们可以通过配置,规定我们需要哪些Bean对象,配置Bean的方式由多种:比如 XML、注解 等等…

    1. 首先,Spring 会通过 BeanDefinitionReader 这个抽象类,将配置文件中的Bean信息进行读取,将每个Bean的定义信息,实例化成对应的BeanDefinition
    2. IOC容器会根据这些BeanDefinition,实例化相应的Bean对象,实例化的方式是BeanFactory工厂+反射,此时的Bean对象并没有经过初始化,并不能算一个完全体。
    3. IOC容器会初始化这个已经被实例化的Bean对象,这个过程会进行依赖注入,初始化完成,Bean对象成为一个完全体。
    4. IOC容器用类似与 Map 的数据结构 将Bean 对象进行存储。

    在这里插入图片描述

    IOC 容器在Spring 中的实现

    1. BeanFactory:这是IOC容器的基本实现,是Spring内部使用的接口,面向Spring本身,不提供给开发人员使用。
    2. ApplicationContext:BeanFactory的子接口,不仅拥有BeanFactory的所有功能,还提供了更多的高级特性,面向Spring的使用者,几乎所有场合都使用AppliacationContext而不是底层的BeanFactory。
    3. ApplicationContext的主要实现类
      在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    weui citypicker 多次动态赋值
    基于卷积神经网络的视频超分辨率
    计算机毕业设计Java大学生家教平台(源码+系统+mysql数据库+lw文档)
    适用于细胞核、细胞膜、线粒体、细胞骨架的成像的荧光探针推荐
    1 jdbc连接池原理
    26.K-均值算法的优化目标、随机初始化、聚类数的选择
    7、架构-架构的安全性
    如何零基础自学 Python ?听我娓娓道来
    Linux命令总结
    Python 霸榜的一周,又有什么新 AI 力作呢?「GitHub 热点速览」
  • 原文地址:https://blog.csdn.net/qq_43513394/article/details/133925424