网站首页 > 博客文章 正文
Spring Boot配置文件的加载顺序是确定配置值如何被解析和覆盖的关键。以下是清晰的Spring Boot配置文件加载顺序的概述:
1. 开发者工具和测试配置
- 开发者工具(Devtools)全局配置参数
- 单元测试上的@TestPropertySource注解指定的参数
- 单元测试上的@SpringBootTest注解指定的参数
2. 命令行参数
- 命令行指定的参数,例如java -jar springboot.jar --name="Java技术栈"
- 命令行中的SPRING_APPLICATION_JSON指定参数,如java -Dspring.application.json='{"name":"Java技术栈"}' -jar springboot.jar
3. Servlet容器初始化参数
- ServletConfig初始化参数
- ServletContext初始化参数
4. JNDI参数
- 从java:comp/env/获取的JNDI参数,例如java:comp/env/spring.application.json
5. Java系统参数和环境变量
- Java系统参数(来源:System.getProperties())
- 操作系统环境变量参数
6. 随机值
- RandomValuePropertySource:仅匹配random.*的属性值
7. 配置文件
- 外部配置文件(JAR包外,优先级由高到低):application-{profile}.properties或application-{profile}.yml(在spring.profiles.active指定的profile中)application.properties或application.yml
- 内部配置文件(JAR包内,优先级由高到低):/config/目录下的application.properties或application.yml类路径(classpath)根目录下的application.properties或application.yml通过@PropertySource注解指定的配置文件通过SpringApplication.setDefaultProperties指定的默认属性
8. 特殊配置
- @Configuration类上的@PropertySource:指定额外的配置文件位置
注意事项
- 当存在相同配置内容时,高优先级的配置会覆盖低优先级的配置。
- 存在不同的配置内容时,高优先级和低优先级的配置内容取并集,共同生效,形成互补配置。
- 可以通过spring.config.location来改变默认的配置文件位置。
这个加载顺序确保了Spring Boot能够灵活地处理各种配置源,并在它们之间建立优先级关系。
猜你喜欢
- 2025-05-05 Springboot项目中几种跨域的解决方法
- 2025-05-05 快来试试这款一行代码实现多平台文件存储的工具!
- 2025-05-05 Spring Boot3 整合 Redis 实现数据缓存操作全解析
- 2025-05-05 Spring Boot 优雅实现多租户架构(多租户开源框架 java)
- 2025-05-05 手把手教你搭建Spring Boot项目(springboot工程搭建步骤)
- 2025-05-05 详细介绍一下Spring Boot配置文件的加载顺序?
- 2025-05-05 第三章:SpringBoot 配置文件(springboot配置文件详解)
- 2025-05-05 Spring Boot3 整合 Thymeleaf 模板引擎全攻略
- 2025-05-05 震碎认知!将原理融会贯通到顶点的SpringBoot实战项目
- 2025-05-05 Spring Boot3 整合 Nacos 实现配置管理全解析
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 362℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)