springboot启动流程过程
更新时间:2025年02月11日 09:07:41 作者:只俗不凡
Spring Boot 简化了 Spring 框架的使用,通过创建 `SpringApplication` 对象,判断应用类型并设置初始化器和监听器,在 `run` 方法中,读取配置并加载到 `Environment` 中,通过 Spring 事件机制和 `EnvironmentPostProcessor` 处理配置
springboot启动流程
springboot简化了spring框架的使用
springboot程序启动入口


1.创建SpringApplication对象
判断web应用类型(Servlet)、设置初始化器、设置监听器

getSpringFactoriesInstance方法中是利用spring spi机制找到传入的接口类型的实现者
2.执行run方法
读取配置到Environment中

读取配置信息加载到Environment中。在prepareEnvironment方法中,创建Environment对象后,通过spring事件机制将Environment实例发布出去,由各个监听器读取配置信息并放到Environment实例中


发布ApplicationEnvironmentPreparedEvent事件

如EnvironmentPostProcessorApplicationListener监听器(该监听器是上述创建SpringApplication对象时创建的)

该监听器会将Environment实例交给众多EnvironmentPostProcessor的实现者(这些实现者也是通过spring spi机制发现的)去处理。
如ConfigDataEnvironmentPostProcessor,它是EnvironmentPostProcessor的实现者之一,主要功能就是读取以下路径中的文件名为application,扩展名为yml或yaml的配置文件内容



创建context


刷新context
spring启动流程

触发listener和runner

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot项目启动数据加载内存的三种方法
一般来说,SpringBoot工程环境配置放在properties文件中,启动的时候将工程中的properties/yaml文件的配置项加载到内存中,本文给大家介绍了SpringBoot项目启动数据加载内存中的三种方法,需要的朋友可以参考下
2024-04-04
Mybatis-Plus更新数据忽略null值问题
本文主要介绍了Mybatis-Plus更新数据忽略null值问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2025-02-02
SpringCloud之注册中心之Nacos负载均衡详解
Nacos提供多种负载均衡策略,包括权重、同机房、同地域、同环境等,服务下线和权重配置可以通过Nacos管理界面进行,同时,Nacos使用Raft算法选举Leader节点,若IP地址改变可能会影响Leader选举,配置同集群优先访问可以提高访问速度,通过配置集群名称和负载均衡策略
2025-03-03
Java实现企业微信回调配置的详细步骤与测试
这篇文章主要给大家介绍了关于Java实现企业微信回调配置的详细步骤与测试,企业微信回调是指企业微信通过HTTP POST请求将业务数据回调到指定的URL上,文中给出了详细的代码示例,需要的朋友可以参考下
2023-09-09
Spring实现文件上传的配置详解
这篇文章将为大家详细说明一下spring上传文件如何配置,以及从request请求中解析到文件流的原理,文中示例代码讲解详细,感兴趣的可以了解一下
2022-08-08
java实现2048游戏源代码
这篇文章主要为大家详细介绍了java实现2048游戏源代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2020-07-07
Java对象数组定义与用法详解
这篇文章主要介绍了Java对象数组定义与用法,结合实例形式分析了java对象数组的概念、功能、定义与使用方法,需要的朋友可以参考下
2019-08-08
SpringBoot时间格式化的方法小结
SpringBoot中的时间格式化通常指的是将Java中的日期时间类型转换为指定格式的字符串,或者将字符串类型的时间解析为Java中的日期时间类型,本文小编将给大家详细总结了SpringBoot时间格式化的方法,刚兴趣的小伙伴跟着小编一起来看看吧
2023-10-10
最新评论