admin管理员组文章数量:1032048
springboot 启动加载顺序
概述
Spring Boot的启动加载顺序是一个涉及多个步骤和组件的过程。以下是按照主要阶段和关键步骤划分的Spring Boot启动加载顺序的概述:
- 启动准备阶段:
- 装载核心启动器类:
org.springframework.boot.SpringApplication
。 - 通过构造函数创建
SpringApplication
实例时,进行一系列的初始化工作,包括:- 判断并设置web环境类型(如SERVLET、REACTIVE等)。
- 使用
SpringFactoriesLoader
加载ApplicationContextInitializer
和ApplicationListener
。 - 推断并设置主配置类(primary sources)。
- 装载核心启动器类:
- 配置加载阶段:
- Spring Boot项目会按照特定的顺序加载配置文件,这些配置文件可以是
application.properties
或application.yml
格式。 - 配置文件的加载顺序(优先级由高到低):
file:./config/
(项目根路径下的config文件夹)file:./
(项目根路径)classpath:/config/
(类路径下的config文件夹)classpath:/
(类路径)
- 外部配置文件的加载方式:
- 命令行参数:可以直接在启动命令后添加启动参数。
spring.config.location
:用于指定配置文件的新位置。
- 如果多个文件有相同的key,高优先级的值会覆盖低优先级的值。
- Spring Boot项目会按照特定的顺序加载配置文件,这些配置文件可以是
- 上下文准备阶段:
- 准备并刷新应用上下文(Context)。
- 加载所有的初始化器(如从
META-INF/spring.factories
配置文件中加载的)。 - 加载所有的监听器(也是从
META-INF/spring.factories
配置文件中加载的)。
- 启动执行阶段:
- 触发所有
CommandLineRunner
执行。 - 执行自定义的初始化逻辑(如果有的话)。
- 触发所有
- 完成阶段:
- 启动完成,等待退出。
注意事项
- 带profile的配置文件(如
application-dev.yml
)通常具有比不带profile的配置文件(如application.yml
)更高的优先级。 - 如果使用Spring Boot的自动配置机制,那么会有一系列自动配置类根据条件进行加载和配置。
- 具体的启动加载顺序可能会因Spring Boot版本和具体配置而有所不同,但整体流程是类似的。
通过清晰地了解Spring Boot的启动加载顺序,可以更好地理解和控制应用的启动过程,以及如何进行配置和扩展。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-05-25,如有侵权请联系 cloudcommunity@tencent 删除工作命令行配置springbootspringboot 启动加载顺序
概述
Spring Boot的启动加载顺序是一个涉及多个步骤和组件的过程。以下是按照主要阶段和关键步骤划分的Spring Boot启动加载顺序的概述:
- 启动准备阶段:
- 装载核心启动器类:
org.springframework.boot.SpringApplication
。 - 通过构造函数创建
SpringApplication
实例时,进行一系列的初始化工作,包括:- 判断并设置web环境类型(如SERVLET、REACTIVE等)。
- 使用
SpringFactoriesLoader
加载ApplicationContextInitializer
和ApplicationListener
。 - 推断并设置主配置类(primary sources)。
- 装载核心启动器类:
- 配置加载阶段:
- Spring Boot项目会按照特定的顺序加载配置文件,这些配置文件可以是
application.properties
或application.yml
格式。 - 配置文件的加载顺序(优先级由高到低):
file:./config/
(项目根路径下的config文件夹)file:./
(项目根路径)classpath:/config/
(类路径下的config文件夹)classpath:/
(类路径)
- 外部配置文件的加载方式:
- 命令行参数:可以直接在启动命令后添加启动参数。
spring.config.location
:用于指定配置文件的新位置。
- 如果多个文件有相同的key,高优先级的值会覆盖低优先级的值。
- Spring Boot项目会按照特定的顺序加载配置文件,这些配置文件可以是
- 上下文准备阶段:
- 准备并刷新应用上下文(Context)。
- 加载所有的初始化器(如从
META-INF/spring.factories
配置文件中加载的)。 - 加载所有的监听器(也是从
META-INF/spring.factories
配置文件中加载的)。
- 启动执行阶段:
- 触发所有
CommandLineRunner
执行。 - 执行自定义的初始化逻辑(如果有的话)。
- 触发所有
- 完成阶段:
- 启动完成,等待退出。
注意事项
- 带profile的配置文件(如
application-dev.yml
)通常具有比不带profile的配置文件(如application.yml
)更高的优先级。 - 如果使用Spring Boot的自动配置机制,那么会有一系列自动配置类根据条件进行加载和配置。
- 具体的启动加载顺序可能会因Spring Boot版本和具体配置而有所不同,但整体流程是类似的。
通过清晰地了解Spring Boot的启动加载顺序,可以更好地理解和控制应用的启动过程,以及如何进行配置和扩展。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-05-25,如有侵权请联系 cloudcommunity@tencent 删除工作命令行配置springboot本文标签: springboot 启动加载顺序
版权声明:本文标题:springboot 启动加载顺序 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747909743a2226321.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论