2-2.配置文件分类
约 463 字大约 2 分钟
2025-07-15
1. 配置文件分类
SpringBoot 支持多种配置文件格式,包括 properties
、yml
和 yaml
。yml
和 yaml
格式除了文件后缀名不同外,格式完全一样,可以视为同一种格式。在实际开发中,yml
格式应用最为广泛。
以下是三种不同文件格式配置相同属性的示例:
- application.properties (properties 格式)
server.port=80
- application.yml (yml 格式)
server:
port: 81
- application.yaml (yaml 格式)
server:
port: 82
接下来,我们将探讨当这三种配置文件同时存在时,它们的优先级是怎样的。
2. 配置文件优先级
当 application.properties
、application.yml
和 application.yaml
同时存在时,配置文件的加载优先级顺序为:application.properties > application.yml > application.yaml
。这意味着 application.properties
的优先级最高,application.yaml
的优先级最低。
以下是一个例子,展示了不同配置文件中的相同配置项如何被优先级较高的文件覆盖:
- application.properties (properties 格式)
server.port=80
- application.yml (yml 格式)
server:
port: 81
- application.yaml (yaml 格式)
server:
port: 82
在这个例子中,最终生效的端口号将是 80,因为 application.properties
具有最高的优先级。
但是,如果不同的配置文件包含不同的配置项,那么所有的配置项都会生效。例如:
- application.properties (properties 格式)
server.port=80
spring.main.banner-mode=off
- application.yml (yml 格式)
server:
port: 81
logging:
level:
root: debug
- application.yaml (yaml 格式)
server:
port: 82
在这个例子中,最终生效的端口号是 80(来自 application.properties
),spring.main.banner-mode=off
也会生效(同样来自 application.properties
),logging.level.root=debug
也会生效(来自 application.yml
)。
总结:
- 配置文件间的加载优先级为:
properties
(最高) >yml
>yaml
(最低) - 不同配置文件中相同的配置按照加载优先级相互覆盖,不同配置文件中不同的配置全部保留。