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}