119、Spring容器启动流程是怎样的(配有Spring启动完整流程图)

Spring容器启动流程是怎样的

  1. 在创建Spring容器,也就是启动Spring时:
  2. 首先会进行扫描,扫描得到所有的BeanDefinition对象,并存在一个Map中
  3. 然后筛选出非懒加载的单例BeanDefinition进行创建Bean,对于多例Bean不需要在启动过程中去进行创建,对于多例Bean会在每次获取Bean时利用BeanDefinition去创建
  4. 利用BeanDefinition创建Bean就是Bean的创建生命周期,这期间包括了合并BeanDefinition、推断构造方法、实例化、属性填充、初始化前、初始化、初始化后等步骤,其中AOP就是发生在初始化后这一步骤中
  5. 单例Bean创建完了之后,Spring会发布一个容器启动事件
  6. Spring启动结束
  7. 在源码中会更复杂,比如源码中会提供一些模板方法,让子类来实现,比如源码中还涉及到一些BeanFactoryPostProcessor和BeanPostProcessor的注册,Spring的扫描就是通过BenaFactoryPostProcessor来实现的,依赖注入就是通过BeanPostProcessor来实现的
  8. 在Spring启动过程中还会去处理@Import等注解
相关推荐
庞轩px35 分钟前
第五篇:Spring事务管理——@Transactional的底层实现与失效场景
java·spring·事务管理·spring事务·注解transactional
ooseabiscuit3 小时前
Laravel6.x新特性全解析
java·开发语言·后端·mysql·spring
青山师3 小时前
Java内存模型深度解析:Happens-Before规则与内存屏障实现原理
java·spring·面试·职场和发展·java程序员·jmm
Mr_pyx3 小时前
RAG知识库从零到一:简单搭建教程(java版)
java·spring·ai·rag
月落归舟3 小时前
深入解析Spring依赖注入 DI 的三种方式
java·后端·spring
庞轩px4 小时前
第一篇:Spring IoC容器——控制反转的本质与Bean的生命周期
spring·ioc·di·控制反转·bean生命周期·循环依赖
小新同学^O^4 小时前
简单学习 --> Spring统一处理
java·学习·spring·统一功能处理
huohuopro4 小时前
Spring MVC 的核心知识点梳理
spring·mvc·状态模式
@SmartSi4 小时前
AgentScope Java 入门系列:Spring AI Alibaba 与 AgentScope 的定位与区别
java·spring·agentscope
Jul1en_4 小时前
【SpringCloud】OpenFeign 与 Gateway 讲解与部署
spring·spring cloud·gateway