14.SpringBoot学习笔记

配置文件的占位符

Posted by Chen Xingxu on June 20, 2020

SpringBoot学习笔记(十四)–配置文件的占位符

RandomValuePropertySource:配置文件中可以使用随机数

  • ${random.value}
  • ${random.int}
  • ${random.long}
  • ${random.int(10)}
  • ${random.int[1024,65536]}

属性配置占位符

  • 可以在配置文件中引用前面配置过的属性
  • ${app.name:默认值} 来指定找不到属性时的默认值

示例 1

配置 application.properties

person.last-name=小明${random.uuid}
person.age=${random.int}
person.birth=2020/6/6
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=${person.last-name}_dog
person.dog.age=3

配置 JavaBean 中的 Person

package demo.yangxu.springboot.bean;
@Component
@ConfigurationProperties(prefix="person")
public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

编写测试方法

@Test
void contextLoads() {
    System.out.println(person);
}

运行结果

Person{lastName='小明6987d94a-50e4-4d08-8851-a4b2cd84562a', age=1356037315, boss=false, birth=Sat Jun 06 00:00:00 CST 2020, maps={k1=v1, k2=14}, lists=[a, b, c], dog=Dog{name='小明2130041b-d4f1-44ce-b4de-bd7007276165_dog', age=3}}

示例 2

引用一个从未配置过的属性

#引用了一个从未配置过的值
person.dog.name=${person.hello}_dog

测试结果

dog=Dog{name='${person.hello}_dog', age=3}

示例 3

引用一个从未配置过的属性,但为其指定一个默认值

#引用了一个从未配置过的值
person.dog.name=${person.hello:hello}_dog

测试结果

dog=Dog{name='hello_dog', age=3}