SpringBoot开发【配置】配置文件占位符

113 阅读1分钟

「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。

配置文件占位符

RandomValuePropertySource:配置文件可以使用随机数属性配置占位符:可以在配置文件中引用前面配置过的属性(优先级前面配置过的这里都能用)

随机数random.value{random.value} {random.int} random.long{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.lastname改为{person.last-name}改为 {person.hello},person.hello使我们没有配置过的值,这是测试会发现直接给了dog默认值person.hello

测试结果

我们将person.hello改为{person.hello}改为 {person.hello:hello},这时dog被赋予了一个默认的值hello

测试结果

note:

  • 在配置文件占位符时,属性名字需要大小写一致
  • 占位符获取之前配置的值,如果没有可以使用:指定默认值
  • 自己尝试一下随机数的功具体操作功能