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项目启动数据加载内存的三种方法

    一般来说,SpringBoot工程环境配置放在properties文件中,启动的时候将工程中的properties/yaml文件的配置项加载到内存中,本文给大家介绍了SpringBoot项目启动数据加载内存中的三种方法,需要的朋友可以参考下
    2024-04-04
  • Mybatis-Plus更新数据忽略null值问题

    Mybatis-Plus更新数据忽略null值问题

    本文主要介绍了Mybatis-Plus更新数据忽略null值问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • SpringCloud之注册中心之Nacos负载均衡详解

    SpringCloud之注册中心之Nacos负载均衡详解

    Nacos提供多种负载均衡策略,包括权重、同机房、同地域、同环境等,服务下线和权重配置可以通过Nacos管理界面进行,同时,Nacos使用Raft算法选举Leader节点,若IP地址改变可能会影响Leader选举,配置同集群优先访问可以提高访问速度,通过配置集群名称和负载均衡策略
    2025-03-03
  • J2EE Servlet基础在浏览器上运行HelloServlet的方法

    J2EE Servlet基础在浏览器上运行HelloServlet的方法

    这篇文章主要介绍了J2EE Servlet基础在浏览器上运行HelloServlet的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Java实现企业微信回调配置的详细步骤与测试

    Java实现企业微信回调配置的详细步骤与测试

    这篇文章主要给大家介绍了关于Java实现企业微信回调配置的详细步骤与测试,企业微信回调是指企业微信通过HTTP POST请求将业务数据回调到指定的URL上,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-09-09
  • java中tomcat的80端口被占用问题解决

    java中tomcat的80端口被占用问题解决

    java中tomcat的80端口被占用问题解决,需要的朋友可以参考一下
    2013-03-03
  • Spring实现文件上传的配置详解

    Spring实现文件上传的配置详解

    这篇文章将为大家详细说明一下spring上传文件如何配置,以及从request请求中解析到文件流的原理,文中示例代码讲解详细,感兴趣的可以了解一下
    2022-08-08
  • java实现2048游戏源代码

    java实现2048游戏源代码

    这篇文章主要为大家详细介绍了java实现2048游戏源代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Java对象数组定义与用法详解

    Java对象数组定义与用法详解

    这篇文章主要介绍了Java对象数组定义与用法,结合实例形式分析了java对象数组的概念、功能、定义与使用方法,需要的朋友可以参考下
    2019-08-08
  • SpringBoot时间格式化的方法小结

    SpringBoot时间格式化的方法小结

    SpringBoot中的时间格式化通常指的是将Java中的日期时间类型转换为指定格式的字符串,或者将字符串类型的时间解析为Java中的日期时间类型,本文小编将给大家详细总结了SpringBoot时间格式化的方法,刚兴趣的小伙伴跟着小编一起来看看吧
    2023-10-10

最新评论