网站首页 > 博客文章 正文
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 实现配置管理全解析
你 发表评论:
欢迎- 最近发表
-
- 解决Win10打开软件提示“服务器没有及时响应或控制请求”
- 用友UAP解开非结构化大数据处理与分析的密码
- Windows 25H2 修复底层崩溃(windows修复环境)
- 开源技巧:使用Docker实现交互式任务
- Win11 任意版本 直接安装 Android 应用 教程完整版
- Windows Terminal已成为Windows 11操作系统的默认终端
- 那些好莱坞电影中炫酷的特效 原来是这么拍的
- Windows 10 Build 21327.1010发布:测试服务管道更新
- Made in China: The story behind the label
- PowerShell登录远程Linux系统(powershell开启远程桌面)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- 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)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)