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(最低) - 不同配置文件中相同的配置按照加载优先级相互覆盖,不同配置文件中不同的配置全部保留。