在 Spring Boot 中,application.properties 和 application.yml 都是用来配置应用程序属性的配置文件,它们的功能是等价的,只是语法格式不同。以下是两者的主要区别:
application.properties
使用键值对的形式(类似 Java 的 Properties 文件):
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
application.yml
使用 YAML(YAML Ain't Markup Language)格式,基于缩进表示层级结构:
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
.properties 格式的开发者或工具。myapp:
users:
- name: Alice
role: admin
- name: Bob
role: user
myapp.users[0].name=Alice
myapp.users[0].role=admin
myapp.users[1].name=Bob
myapp.users[1].role=user
Spring Boot 默认按以下顺序查找配置文件(优先级从高到低):
/config 子目录/config 包在同一位置下,如果同时存在 application.properties 和 application.yml,Spring Boot 会优先加载 application.properties(因为内部处理顺序中 .properties 在 .yml 之前)。但通常建议只使用其中一种,避免混淆。
⚠️ 注意:Spring Boot 2.4+ 版本对配置文件的加载行为有细微调整,推荐查阅官方文档以获取最新信息。
| 场景 | 推荐格式 |
|---|---|
| 配置项少、结构简单 | application.properties |
| 配置项多、有嵌套/列表结构 | application.yml |
| 团队已有规范 | 遵循团队约定 |
| 需要与旧系统兼容 | application.properties |
✅ 最佳实践:在一个项目中统一使用一种格式,不要混用。
如果你刚开始使用 Spring Boot,YAML 通常是更现代、更清晰的选择。