这三个是 SpringBoot 项目的核心配置文件 ,专门用来管理不同运行环境的配置(开发 / 测试 / 生产),是企业级项目最标准的配置方案。
一、核心作用
1. application.yml
- 主配置文件 / 公共配置文件
- 存放所有环境都通用的配置
- 优先级最低,会被环境专属配置覆盖
- 示例:项目名称、通用端口、公共依赖配置
2. application-dev.yml
- 开发环境专属配置
dev = development- 存放本地开发用的配置
- 示例:本地数据库、本地 Redis、调试日志、热部署
3. application-prod.yml
- 生产环境专属配置
prod = production- 存放线上服务器用的配置
- 示例:线上数据库、线上 Redis、关闭调试、生产日志级别
二、关键区别(最核心)
表格
| 文件 | 定位 | 优先级 | 使用场景 |
|---|---|---|---|
| application.yml | 公共基础配置 | 最低 | 所有环境通用 |
| application-dev.yml | 开发环境配置 | 中 | 本地写代码、调试 |
| application-prod.yml | 生产环境配置 | 中 | 服务器上线运行 |
最重要规则:
同名配置项,环境专属文件会覆盖主配置文件比如:
- application.yml 写端口:
8080 - application-dev.yml 写端口:
8081→ 启动 dev 环境时,最终端口是 8081
三、如何切换环境?
在 application.yml 中指定当前使用哪个环境:
java
# 公共配置
spring:
profiles:
# 激活 dev 环境 → 加载 application-dev.yml
active: dev
# 激活 prod 环境 → 加载 application-prod.yml
# active: prod
四、完整示例
1. application.yml(公共)
java
server:
port: 8080 # 默认端口,会被覆盖
spring:
application:
name: my-demo # 所有环境通用
profiles:
active: dev # 切换环境只改这里
2. application-dev.yml(开发)
java
spring:
datasource:
url: jdbc:mysql://localhost:3306/test # 本地库
username: root
password: root
logging:
level: debug # 开发调试用
3. application-prod.yml(生产)
java
spring:
datasource:
url: jdbc:mysql://192.168.1.100:3306/prod # 线上库
username: prod_user
password: xxxxxx
logging:
level: info # 生产只打重要日志
五、为什么要分这么多文件?
- 环境隔离:开发用本地库,生产用线上库,互不干扰
- 安全:线上密码不暴露在开发配置中
- 便捷 :打包上线时,只需要切换
active: prod - 规范:企业级 SpringBoot 项目标准结构
总结
- application.yml:放通用配置
- application-dev.yml:本地开发用
- application-prod.yml:线上部署用
- 激活方式 :在主配置里写
spring.profiles.active=环境名 - 优先级:专属配置 > 公共配置