• 1、Spring IOC的理解要点


    Bean的生命周期
    Spring源码解读-AOP、事务
    Spring循环依赖
    1、谈谈对Spring IOC的理解,原理与实现

    总:

    控制反转

    • 理论思想,原来的对象是由使用者来进行控制,有了spring之后,可以把整个对象交给spring来帮我们进行管理
      DI:依赖注入,把对应的属性的值注入到具体的对象中,@Autowired,populateBean完成属性值的注入
    • 容器:存储对象,使用map结构来存储,在spring中一般存在三级缓存,singletonObjects存放完整的bean对象
      整个bean的生命周期,从创建到使用到销毁的过程全部都是由容器来管理【bean的生命周期】

    分:

    1. 一般聊ioc容器的时候要涉及到容器的创建过程(beanFactory,DefaultListableBeanFactory),向bean工厂中设置一些参数
      (BeanPostProcessor,Aware接口的子类)等等属性
    2. 加载解析bean对象,准备要创建的bean对象的定义对象beanDefinition(xml或者注解的解析过程)
    3. beanFactoryPostProcessor的处理,此处是扩展点,PlaceHolderConfigurSupport,ConfigurationClassPostProcessor
    4. BeanPostProcessor的注册功能,方便后续对bean对象完成具体的扩展功能
    5. 通过反射的方式讲BeanDefinition对象实例化成具体的bean对象
    6. bean对象的初始化过程(填充属性,调用aware子类的方法,调用BeanPostProcessor前置处理方法,调用init-mehtod方法,调用
      BeanPostProcessor的后置处理方法)
    7. 生成完整的bean对象,通过getBean方法可以直接获取
    8. 销毁过程

    spring中的bean都是通过反射的方式生成的,同时其中包含了很多的扩展点,比如最常用的对
    BeanFactory的扩展,对bean的扩展(对占位符的处理),除此之外,ioc中最核心的也就是填
    充具体bean的属性,和生命周期(背一下)。

    2.谈一下springloc的底层实现
    底层实现:工作原理,过程,数据结构,流程,设计模式,设计思想
    你对他的理解和你了解过的实现过程
    反射,工厂,设计模式,关键的几个方法
    createBeanFactory,getBean,doGetBean,createBean,doCreateBean,createBeanInstance(getDeclaredConstructor,newinstance),populateBean,initializingBean

    1. 先通过createBeanFactory创建出一个Bean工厂(DefaultListableBeanFactory)
    2. 开始循环创建对象,因为容器中的bean默认都是单例的,所以优先通过getBeanta容器中查找,找不到的话,
    3. 通过createBeandoCreateBean方法,以反射的方式创建对象,一般情况下使用的是无参的构造方法(getDeclaredconstructor,
      newInstance)
    4. 进行对象的属性填充populateBear
    5. 进行其他的初始化操作(initializingBean)
  • 相关阅读:
    汽车标定技术(六)--基于模型开发如何生成完整的A2L文件(2)
    POSIX 标准-信号量sem_t
    Grafana 系列-统一展示-3-Prometheus 仪表板
    Window窗体。
    MyBatis Plus 实现获取自动生成主键值的方法
    stable-diffusion 3 体验部署流程(ComfyUI)
    CentOS 安装MySQL 详细教程
    人工神经网络理论设计及应用课后题答案韩力群
    基于springboot实现数码论坛系统设计与实现系统【项目源码+论文说明】计算机毕业设计
    eureka的docker镜像部署
  • 原文地址:https://blog.csdn.net/MonochromeContrast/article/details/127644719