SpringBoot项目的配置文件

26 阅读2分钟

在SpringBoot项目中有一个application.properties配置文件,该配置文件主要是配置项目的信息、数据库的连接信息、日志的相关信息等,但是使用.properties配置文件对这些属性进行配置存在一些问题:

spring.application.name=JavaWeb05_MyBatis

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/db01
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

可以发现在配置数据库的时候,在properties文件中写了大量相同的前缀:spring.datasource.,这十分的冗杂,并且配置项的层次结构十分不清楚。假如说在大型项目中有数百条配置语句,那么重复的前缀就太多了,并且项目的配置相当的混乱,不易阅读。所以说SpringBoot项目提供了多种属性配置的方式:properties、yaml、yml(其中yaml和yml配置文件是相同的)。大部分项目会习惯使用.yaml配置文件。

使用yaml配置文件配置SpringBoot项目

yaml配置文件基本格式

yaml配置文件简洁,层次分明,其主要是以数据为中心。

1.yaml进行配置主要是键值对,数值的前面必须有空格,作为分隔符。

2.使用缩进表示各层级之间的关系,缩进时应该使用空格键,不允许使用Tab键进行缩进(但是idea这类高级编译器会自动将Tab转换为空格)。缩进的空格数不重要,但是相同层级的元素必须对齐。

3.使用#表示注释,和语言一样,注释会被解析器忽略。

将properties配置改为yaml配置

参照以前的properties配置文件将其修改为yaml配置文件:

spring:
  application:
    name: JavaWeb06_Develop

  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/db01
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

将两份文件进行比较,发现yaml文件中不存在重复的前缀,并且该配置文件的层次结构十分清楚,用来配置SpringBoot项目是极好的。

yaml配置文件用于定义对象/Map集合:

yaml配置文件的数据是键值对,所以说其可以用来定义对象和Map集合,这种方式使用的十分广泛:

user:
  name: zhangsan
  age: 18
  password: 123456

yaml配置文件还可以用于定义数组/List/Set集合

yaml配置文件还可以用来定义数组和集合:

hobby:
  - java
  - game
  - sport
  - sleep

需要特别注意的是:假如在yaml格式的配置文件中,若配置项的值是以“0”开头的,需要使用' ' 引起来,因为以0开头在yaml文件中表示8进制的数据。