SpringBoot的配置文件

2020-12-18 11:05

阅读:360

  1. SpringBoot配置文件的类型和作用

    SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)文件进行配置

    SpringBoot默认会从Resources目录下加载application.properties或者.yml文件

    其中application.properties是键值对类型的文件,之前一直在使用。除此之外,SpringBoot还可以通过.yml文件进行配置,下面主要对.yml文件进行学习

  2. application.yml配置文件

    1. yml文件配置简介

      yml文件格式是yaml编写的文件格式,yaml是一种直观的能够被电脑识别的数据序列化格式,并且很容易被人类所读,容易和脚本语言交互的,可以被支持yaml库的不同的编程语言程序导入,比如:从c/c++、python、java等。yml问价是以数据为核心的,比传统的xml文件更加的简洁灵活

    2. yml配置文件的语法

      1. 配置普通数据

        • 语法 key: value

        • 示例 name: alice

        • 注意;value之前有一个空格

      2. 配置对象数据

        • 语法 key:

          key1: value1

          key2: value2

          或者

          key: {key1: value1,key2: value2}

        • 示例

          person:

          name: alice

          age: 31

          address: beijing

          或者

          person: {name: alice,age: 31,address: beijing}

        • 注意:key1前面的空格个数不限定,在yml语法中,相同缩进代表同一级别

      3. 配置map数据

        和配置对象数据一致

      4. 配置数组(List、Set)数据

        • 语法:

          key:

          -value1

          -value2

          -value3

          或者

          key: [value1,value2,value3]

        • 示例

          city:

          - beijing

          - shanghai

          - hangzhou

          或者

          city: [beijing,shanghai,hangzhou]

    3. 配置文件与配置类的属性映射方式

      • 可以通过@value注解将配置文件中的值映射到一个Spring管理的Bean的字段上

      例如:

      application.properties配置如下

      person:
      name: zhangsan
      age: 18

      application.yml配置如下

      person:
      name: zhangsan
      age: 18

      实体Bean如下

      @Controller
      public class QuickStartController{
         @value("${person.name}")
         private String name;
          @value("${person.age}")
         private Integer age;
      }
      • 使用注解@ConfigurationProperties(prefix="配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映射

        例如:

        application.properties配置如下

        person:
        name: zhangsan
        age: 18

        application.yml配置如下

        person:
        name: zhangsan
        age: 18

        实体Bean如下

        @Controller
        @ConfigurationProperties(prefix="person")
        public class QuickStartController{
           @value("${person.name}")
           private String name;
            @value("${person.age}")
           private Integer age;
        }


评论


亲,登录后才可以留言!