配置文件占位符
RandomValuePropertySource:配置文件可以使用随机数属性配置占位符:可以在配置文件中引用前面配置过的属性(优先级前面配置过的这里都能用)
随机数:${random.value} ${random.int} ${random.long} ${random.int(10)} ${random.int[12543.26]} 具体操作功能大家可以自己尝试一下
${app.name}:默认值}来指定找不到属性时的默认值
我们来实验一下
这次我们用用主程序来测试,把之前写的@PropertySource注释掉,然后把Properties文件中的person配置恢复,并在后边添加随机数(无论是yml还是properties都支持)
person.last-name=张三${random.uuid}
person.age=${random.int}
person.boss=false
person.birth=2019/12/12
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=${person.last-name}_white
person.dog.age=10
我们在lastname、age、dog处添加了随机数,用test测试一下
我们发现分别在lastname、age和dog后边产生了随机数
占位符获取之前配置的值:如果没有配置,可以使用:指定默认值
假设我们person中lastname没有配置值,在dog处就会报错。
另外,我们可以给dog指定值,我们将${person.last-name}改为 ${person.hello},person.hello使我们没有配置过的值,这是测试会发现直接给了dog默认值person.hello
我们将${person.hello}改为 ${person.hello:hello},这时dog被赋予了一个默认的值hello