springboot配置

配置文件

SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的

  • application.properties

    • 语法结构 :key=value

  • application.yml

    • 语法结构 :key:空格 value

配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;通俗来说就是配置某些Properties中属性值

 yaml语法学习

普通的值  [ 数字,布尔值,字符串  ]

k: v

字符串默认不用加上双引号或者单引号;

注意:

  • “ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;

    比如 :name: "kuang shen"   输出 :kuang  换行   shen

  • '' 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出

    比如 :name: ‘kuang shen’   输出 :kuang     shen

对象

object: 
    property1: val1
    property2: val2

行内写法

object: {property1: val1,property2: val2}

数组

用 - 值表示数组中的一个元素

items:
 - item1
 - item2
 - item3

行内写法

items:[item1,items2,items3]

注入配置文件

@Value注入配置文件

@Component //注册bean
public class Dog {
    @Value("${}")
    private String name;
    @Value("18")
    private Integer age;
}

@ConfigurationProperties注入配置文件

将配置文件中配置的每一个属性的值,映射到这个组件中;

SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定

参数 prefix = “person” :将配置文件中的person下面的所有属性一一对应

@Component //注册bean
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

yaml配置文件

person:
  name: qinjiang
  age: 3
  happy: false
  birth: 2000/01/01
  maps: {k1: v1,k2: v2}
  lists:
   - code
   - girl
   - music
  dog:
    name: 旺财
    age: 1

@PropertySource

 加载指定的配置文件;

@PropertySource(value = "classpath:person.properties")
@Component //注册bean
public class Person {

    @Value("${name}")
    private String name;

    ......  
}

在resources目录下新建person.properties文件 

name=kuangshen

配置文件占位符

 配置文件还可以编写占位符生成随机数

person:
    name: xiaoqiang${random.uuid} # 随机uuid
    age: ${random.int}  # 随机int
    happy: false
    birth: 2000/01/01
    maps: {k1: v1,k2: v2}
    lists:
      - code
      - girl
      - music
    dog:
      name: ${person.hello:other}_旺财
      age: 1
原文地址:https://www.cnblogs.com/WarBlog/p/15103122.html