1、简介
- Spring Boot支持三种主要的配置文件格式,它们分别是.properties、.yml(YAML的简写)和.yaml。
- 配置文件可以放在类路径(classpath)下的
resources
目录或其子目录config
中,也可以放在项目根目录或其子目录config
中。Spring Boot会按照特定的顺序加载这些配置文件。
2、properties文件
- 格式:
.properties
文件使用键值对(key-value pairs)的格式进行配置,其中key和value之间通过等号(=
)连接。 - 优点:写法简单,易于理解和书写,对于简单的配置需求,
.properties
格式足够满足要求。 - 缺点:缺乏层级结构的表示能力,难以表达复杂配置。随着配置项的增多,
.properties
格式的可读性会变差。 - 示例:
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=secret
3、yml文件
- 格式:
.yml
文件(或.yaml
文件,两者是等价的)使用YAML(Yet Another Markup Language)语法,以层级结构的方式进行配置。通过缩进和冒号(:
)来表示层级关系,冒号与值之间需要有一个空格。 - 优点:支持层级结构,可以更好地表达复杂配置,如嵌套配置、列表、块等。采用缩进的语法,易于阅读和维护。
- 缺点:对缩进和冒号的使用有严格的要求,如果没有正确缩进或冒号使用错误可能导致配置解析问题,需要一定的学习成本。
- 示例:
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: secret
4、yaml文件
说明:.yaml
文件与.yml
文件在Spring Boot中是完全等价的,只是文件扩展名不同。它们的语法和功能完全相同。
5、配置文件优先级
- 在Spring Boot 2.4.0及以后版本中,配置文件的优先级从高到低为:
application.yaml
➡️application.yml
➡️application.properties
。- 在Spring Boot 2.4.0以前版本中,优先级为:
application.properties
➡️application.yml
➡️application.yaml
。- 如果在多个配置文件中存在相同的配置项,高优先级的配置文件会覆盖低优先级的配置。