news 2026/10/13 12:58:45

Spring Boot 配置文件核心用法与加载优先级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot 配置文件核心用法与加载优先级

一、多配置文件的核心用法

Spring Boot 采用「主配置文件 + 环境专属配置文件」的模式管理多环境配置,核心规则如下:

1. 配置文件命名规范

Spring Boot 默认识别.properties/.yml/.yaml两种格式,命名需遵循以下规则:

配置文件类型命名格式作用
主配置文件(必选)application.properties/application.yml存放所有环境的公共配置
环境专属配置文件application-{profile}.properties/application-{profile}.yml存放指定环境的专属配置(如application-dev.yml、application-prod.yml)

2. 激活指定配置文件

支持 3 种激活方式,优先级从低到高排列:

方式 1:主配置文件中指定(最常用)

在application.yml中通过spring.profiles.active激活,可指定多个环境(逗号分隔):

yaml

# application.yml(主配置文件) # 公共配置(所有环境生效) server: port: 8080 # 激活 dev 环境(可多环境:dev,test) spring: profiles: active: dev

示例环境配置文件:

yaml

# application-dev.yml(开发环境) spring: datasource: url: jdbc:mysql://localhost:3306/dev_db username: root password: 123456 logging: level: root: debug # 开发环境日志级别

yaml

# application-prod.yml(生产环境) spring: datasource: url: jdbc:mysql://192.168.1.100:3306/prod_db username: prod_user password: prod_123456 logging: level: root: info # 生产环境日志级别 server: port: 80 # 生产环境端口
方式 2:命令行参数指定(优先级更高)

打包为 jar 后,启动时通过--参数覆盖:

bash

运行

java -jar your-project.jar --spring.profiles.active=prod
方式 3:系统环境变量指定

设置系统环境变量SPRING_PROFILES_ACTIVE=test,Spring Boot 自动识别并激活 test 环境。

3. 进阶用法:多环境合并与分组

若配置按功能拆分(如数据库、Redis),可通过spring.profiles.include合并:

yaml

# application-dev.yml spring: profiles: include: - db-dev # 合并数据库配置(application-db-dev.yml) - redis-dev # 合并Redis配置(application-redis-dev.yml)

4. 实战目录结构

plaintext

src/main/resources/ ├── application.yml # 主配置(激活环境) ├── application-dev.yml # 开发环境核心配置 ├── application-prod.yml # 生产环境核心配置 ├── application-db-dev.yml # 开发环境数据库配置 └── application-db-prod.yml # 生产环境数据库配置

二、外部配置加载的核心规则

Spring Boot 加载配置遵循「后加载者优先」原则(后面的配置覆盖前面的),以下按优先级从低到高梳理:

1. 配置加载优先级(核心)

优先级加载位置说明
1(最低)classpath:/项目内部 src/main/resources 目录(默认位置)
2classpath:/config/项目内部 src/main/resources/config 目录
3./应用运行目录(jar 包所在目录)
4./config/应用运行目录下的 config 文件夹(生产环境最常用)
5./config/*/应用运行目录下 config 文件夹的子文件夹(按字母序加载)
6Java 系统属性(-D 参数)如java -Dserver.port=8089 -jar app.jar
7操作系统环境变量如SPRING_PROFILES_ACTIVE=prod(大写 + 下划线命名)
8命令行参数(-- 参数)如java -jar app.jar --server.port=8083
9激活的 profile 配置文件如 application-prod.yml 覆盖 application.yml
10(最高)远程配置中心(Nacos/Apollo 等)覆盖所有本地配置

2. 实战验证示例

假设存在以下配置:

  • classpath:application.yml:server.port=8080
  • ./config/application.yml:server.port=8081
  • 启动命令:java -Dserver.port=8082 --server.port=8083 -jar your-app.jar

最终生效端口为8083,优先级顺序:命令行参数 > Java 系统属性 > 外部 config 配置 > 内部配置。

3. 实用技巧

  1. 生产环境:核心配置(数据库密码、端口)放在./config/application.yml,无需修改 jar 包即可调整;
  2. 临时调试:通过命令行参数快速切换环境,如--spring.profiles.active=test;
  3. 避免冲突:远程配置中心只放核心业务配置,本地保留基础配置便于排查问题。

总结

多配置文件核心
  1. 命名规范:遵循application-{profile}.yml/properties,主配置存放公共配置;
  2. 激活方式:主配置文件指定为默认方式,命令行 / 环境变量可覆盖;
  3. 合并用法:通过spring.profiles.include拆分功能型配置文件。
配置加载核心
  1. 优先级规则:外部配置 > 内部配置,命令行 / 系统属性 > 环境变量 > 配置文件,远程配置 > 本地配置;
  2. 生产常用:./config/目录优先级高于项目内部 config,无需打包即可调整配置;
  3. 核心原则:后加载的配置会覆盖先加载的同名配置。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 6:27:35

SpringBoot整合Thymeleaf

一、Thymeleaf 简介Thymeleaf 是一款现代化的服务器端 Java 模板引擎,主要用于 Web 开发中渲染 HTML 页面,能够无缝集成 Spring Boot 框架。它的核心优势是:支持 HTML 原生语法,模板文件可直接在浏览器中打开预览(无后…

作者头像 李华
网站建设 2026/10/6 17:47:42

亲测好用!8个AI论文平台测评,研究生毕业论文必备

亲测好用!8个AI论文平台测评,研究生毕业论文必备 2026年AI论文平台测评:从功能到体验的深度解析 随着人工智能技术在学术领域的广泛应用,越来越多的研究生开始依赖AI工具来提升论文写作效率。然而,面对市场上五花八门的…

作者头像 李华
网站建设 2026/10/9 21:55:23

循环经济在不同行业的应用前景比较

循环经济在不同行业的应用前景比较 关键词:循环经济、行业应用、应用前景、可持续发展、资源利用 摘要:本文旨在深入探讨循环经济在不同行业的应用前景并进行比较。首先介绍了循环经济的背景知识,包括其目的、适用读者、文档结构和相关术语。接着阐述了循环经济的核心概念、…

作者头像 李华
网站建设 2026/10/11 7:53:04

STM32F0实战:基于HAL库开发【2.1】

7.4.2 从待机模式唤醒 待机模式允许达到能耗最低,它基于Cortex-M0深度睡眠模式,电压调节器禁用,1.8V域关闭,PLL、HIS和HSE振荡器也关闭,SRAM和寄存器内容丢失。只有RTC寄存器、RTC备份寄存器和备用电路保持工作。可以使用HAL库中的HAL_PWR_EnterSTANDBYMode()函数进入待机…

作者头像 李华
网站建设 2026/10/7 4:19:30

动态系统思维:告别僵化内耗的破局指南

职场中总有这样的困惑:公司制定了标准化流程,却越执行越低效;团队追求“绝对有序”,反而失去创新活力;个人埋头重复固有工作,却在变化中逐渐被淘汰。我们总以为“稳定有序”是生存之道,却忽略了…

作者头像 李华
网站建设 2026/10/13 2:26:50

什么病毒会导致人全身没力气、胃口不好,还有拉肚子?

多种病毒感染都可能引发全身乏力、食欲不振、腹泻的症状,其中最常见的是诺如病毒和轮状病毒,此外新冠病毒、腺病毒等也可能出现这类表现。 🦠 常见相关病毒及特点 1. 诺如病毒 • 典型症状:突发腹泻、呕吐,伴随全身乏力、食欲减退,还可能有腹痛、低热 • 传播性强:可…

作者头像 李华