在 Spring Boot 中,配置文件用于配置应用程序的各种属性和参数。Spring Boot 支持多种类型的配置文件,包括 YAML、Properties、XML 等。在本文中,我们将介绍 Spring Boot 的配置文件类型、配置文件的读取顺序和优先级、配置文件的语法和示例等方面。
一、配置文件类型
Spring Boot 支持多种类型的配置文件,包括 YAML、Properties、XML 等。下面是一些常用的配置文件类型和文件名的示例:
- YAML:application.yml、application.yaml、config.yml、config.yaml
- Properties:application.properties、config.properties
- XML:application.xml、config.xml
在 Spring Boot 中,推荐使用 YAML 格式的配置文件。它的语法比 Properties 更简洁,更易读,而且支持复杂的数据结构。如果你的应用程序需要使用 Properties 或 XML 格式的配置文件,也是可以的。
二、配置文件读取顺序和优先级
Spring Boot 在启动时会自动加载配置文件,并按照一定的顺序和优先级进行读取。下面是 Spring Boot 配置文件读取的顺序和优先级:
配置文件的位置
Spring Boot 默认会在以下位置查找配置文件:
- file:./config/
- file:./
- classpath:/config/
- classpath:/
其中,前两个位置是应用程序的运行目录,后两个位置是应用程序的类路径。
配置文件的优先级
Spring Boot 的配置文件有优先级之分,优先级高的配置文件会覆盖优先级低的配置文件。下面是 Spring Boot 配置文件的优先级从高到低的顺序:
- 在启动时通过命令行参数指定的配置文件;
- 在运行目录下的配置文件(如:./config/application.yml);
- 在运行目录下的配置文件(如:./application.yml);
- 在类路径下的配置文件(如:classpath:/config/application.yml);
- 在类路径下的配置文件(如:classpath:/application.yml)。
不同配置文件的优先级
在同一个位置下,不同类型的配置文件的优先级是不同的。下面是不同类型的配置文件的优先级从高到低的顺序:
- YAML > Properties > XML
三、配置文件的语法
在 Spring Boot 中,配置文件的语法和各种属性的定义方式是不同的。下面是 YAML 和 Properties 配置文件的语法和示例。
YAML 配置文件
YAML 是一种轻量级的数据序列化格式,它的语法非常简洁易读。在 YAML 配置文件中,使用缩进来表示层级关系。下面是 YAML 配置文件的语法和示例:
代码语言:javascript复制server:
port: 8080
context-path: /api
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: password
logging:
level:
root: info
在这个示例中,我们定义了以下属性:
server.port
:应用程序的端口号。server.context-path
:应用程序的上下文路径。spring.datasource.url
:数据库连接的 URL。spring.datasource.username
:数据库连接的用户名。spring.datasource.password
:数据库连接的密码。logging.level.root
:日志级别为info
。
Properties 配置文件
Properties 是一种经典的键值对配置文件格式,它的语法简单明了,但不支持复杂的数据结构。在 Properties 配置文件中,使用 key=value
的方式来定义属性。下面是 Properties 配置文件的语法和示例:
server.port=8080
server.context-path=/api
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password
logging.level.root=info
在这个示例中,我们定义了与上述 YAML 示例相同的属性,只是语法不同。