Spring Boot的配置文件

2023-04-05 14:02:09 浏览数 (1)

在 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 配置文件的语法和示例:

代码语言:javascript复制
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 示例相同的属性,只是语法不同。

0 人点赞