spring boot配置应选yml或properties其一并统一使用,按语义分组(如server、spring.datasource)、用profile隔离环境、善用占位符和外部化配置。

Spring Boot 用 application.properties 或 application.yml 配置核心参数,关键不在“能不能配”,而在“怎么配得清楚、可靠、可维护”。选对格式、写对结构、理清优先级,比堆配置更重要。
选一个格式并坚持用到底
两者功能完全等价,只是写法不同:
-
application.properties:键值对风格,适合简单配置或团队习惯 Java 传统风格;写法直白,但嵌套层级靠重复前缀(如
spring.datasource.url),长配置易出错 -
application.yml:缩进+冒号结构,天然支持对象、列表、多环境文档(
---分隔),更适合复杂业务或微服务场景;注意缩进必须用空格(推荐 2 个),冒号后必须加空格,否则启动报错
不建议两个文件共存。若同时存在,.properties 优先级更高,容易导致 yml 里写的被悄悄覆盖,排查困难。统一用 yml 是当前主流实践。
把核心参数按语义分组写,别堆在顶层
比如数据库、服务器、日志、自定义业务开关,各自归位,避免所有配置平铺在根层:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- server 相关统一归到
server:下:port、servlet.context-path、address - 数据源统一归到
spring.datasource:下:url、username、driver-class-name - 日志级别用
logging.level:统一管理,支持包路径粒度:com.example.service: debug - 自定义参数建议加统一前缀,如
app.feature.enable-cache: true,避免和 Spring 内置配置冲突
用 profile 实现环境隔离,别硬编码 dev/prod
不要在主文件里写死生产配置。通过命名约定分离环境:
- 主配置放
application.yml(通用项,如应用名、基础日志) - 开发环境:新建
application-dev.yml,只放server.port: 8081、spring.datasource.url: jdbc:h2:mem:testdb - 生产环境:新建
application-prod.yml,只放真实数据库地址、连接池大小、关闭调试端点等 - 启动时指定激活的 profile:
--spring.profiles.active=prod,或在主文件中设spring.profiles.active: dev
这样既保证代码一致,又避免配置泄露或误用。
善用占位符和外部化,让配置更灵活
避免把敏感信息或变动频繁的值直接写死:
- 引用同文件其他配置:
app.name: my-service,然后app.title: ${app.name} v1.0 - 读取系统环境变量:
spring.datasource.password: ${DB_PASSWORD:default123}(冒号后是默认值) - 外部配置文件导入(Spring Boot 2.4+):
spring.config.import: optional:file:./config/db-config.yml,便于运维单独挂载 - 命令行参数覆盖最优先,适合容器环境:
java -jar app.jar --server.port=9000
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










