• SpringBoot的配置文件


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

    这三种文件存在优先级关系:.properties > .yaml > .yml  (即 对同一种属性进行赋值时,springboot会优先加载.properties中的,等同于.properties文件中的值会覆盖前两者中的值)

    我们可以在配置文件中自己定义服务器端口号和web应用的虚拟工程名,如:

    在yml配置文件中的写法为:

    springboot工程启动后,在控制台上我们可以看到如下日志,说明配置生效了:

    application.yml配置文件

    1. yml配置文件简介

    YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数 据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导 入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简 洁。
    YML文件的扩展名可以使用.yml或者.yaml。

    2.yml配置文件的语法

    配置普通数据

    语法:

       key:  value

    示例代码:

    #普通数据的配置
    name: zhangsan

    注意:冒号之后有一个空格

    配置对象数据

    语法:
      key:
       key1: value1
       key2: value2
      或者:
      key: {key1:  value1,key2:  value2}

    示例代码:

    所有冒号后都要有一个空格
    #对象数据的配置,一般使用缩进方式表示层级关系 person: name: zhangsan age: 18 addr: beijing #行内对象配置,上面对象的另一种写法,一般很少用 #person: {name: zhangsan,age: 18,addr: beijing}

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

    配置Map数据 

    同上面的对象写法

    配置数组(List、Set)数据

    语法:
      key:
       - value1
       - value2

    或者:
      key: [value1,value2]

    示例代码:

    city:  
        - beijing  
        - tianjin  
        - shanghai  
        - chongqing  
    #或者
    city: [beijing,tianjin,shanghai,chongqing]
     
    #集合中的元素是对象形式 
    student:  
        - name: zhangsan    
          age: 18    
          score: 100  
        - name: lisi    
          age: 28    
          score: 88  
        - name: wangwu    
          age: 38    
          score: 90

    注意:value1与之间的 - 之间存在一个空格

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

    1.使用注解@Value映

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

     例如:
    application.properties配置如下:

    person:
      name: zhangsan
      age: 18
      addr: beijing
    注:第一个冒号前不用空格,之后的无所谓

    或者,application.yml配置如下:

    person:
      name: zhangsan
      age: 18
      addr: beijing
    注:每个冒号后都要加空格

    实体Bean代码如下:

    @RestController
    public class Quick2Controller {
    
        @Value("${person.name}")
        //从配置文件中获取对应的key的value值,自动赋给下面变量
        private String name;
    
        @Value("${person.age}")
        private String age;
    
        @Value("${person.addr}")
        private String addr;
    
        @RequestMapping("/quick2")
        public String quick2() {
            //获取配置文件的信息
            return "name: " + name + "  age: "+age +"  addr: " + addr;
        }
    }

    这里的@Value()也可以直接添值,如@Value("beijing")

    浏览器访问结果为:

    2.使用注解@ConfigurationProperties映射

    通过注解@ConfigurationProperties(prefix="配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映射

    application.properties配置如下:

    person.name=zhangsan
    person.age=18
    person.addr=beijing
    注:只能写成这种形式,而不能key:value

    或者,application.yml配置如下:

    person:
      name: zhangsan
      age: 18
      addr: beijing

    实体Bean代码如下:

    @RestController
    @ConfigurationProperties(prefix = "person")
    public class Quick3Controller {
    
        private String name;
        private Integer age;
        private String addr;
    
      //需要设定setter和getter方法
    public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } @RequestMapping("/quick3") public String quick2() { //获取配置文件的信息 return "name: " + name + " age: " + age + " addr: " + addr; } }

    浏览器结果:

     注意:使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方 法才可以,而使用@Value注解修饰的字段不需要提供set方法

  • 相关阅读:
    多线程 -- H2O 生成、交替打印字符串
    打印零与奇偶数
    h2数据库的使用
    rtx应用和开发
    MongoDB--副本集
    Python 推导式
    Bootstrap组件
    Python logging日志的自动分割
    python watchdog监控文件修改
    Linux流量监控iftop
  • 原文地址:https://www.cnblogs.com/churujianghudezai/p/12688985.html
Copyright © 2020-2023  润新知