引用配置属性或引用生成文件的属性或引用随机值
★ 使用占位符引用其他配置属性:
配置文件中可用${}占位符引用已有的属性,被引用的属性可以是:
- 已定义的属性。
- 来自其他配置源(比如命令行的选项参数、环境变量、系统属性等)。
好处:提高了配置文件的可维护性。
代码示例
步骤:
1、在application.yml配置文件中使用${}这种占位符来引用已有的属性。
2、已有的属性有appName,然后下一个appDescription就可以引用appName。目的就是提高配置的可维护性,比如appDescription中的占位符引用需要和appName保持一致时,就需要使用到占位符来引用,appName一修改,appDescription 中的占位符引用也跟着修改。不用说改两次。
3、可以看出在Program arguments中设置的命令行选项参数,在项目启动后,会把数据传递到application.yml的" ${port} " 这个占位符这里。
提示:我在application.yml 和 application.properties 两个配置文件都添加了端口号,发现是以yml 配置文件的为主。
4、然后创建一个类,用@Value注解获取配置文件中的属性值,然后写一个方法看是否能成功通过" ${} "这个占位符引用 拿到数据。
★ 引用构建文件中的属性
▲ Maven构建工具: 使用 @属性名@ 引用pom.xml文件中的配置属性:
pom.xml文件是项目的生成文件。
▲ Gradle 构建工具
在build.gradle文件中增加如下配置:
// 配置Java插件的processResources Task
processResources {
expand(project.properties)
}
接下来即可在配置文件中通过“${属性名}”的形式引用build.gradle文件中的属性。
此时,原有的占位符格式需要进行转义:\${..}。
★ 使用随机值
有些时候(比如出于测试目的),项目需要某些值,但不想使用固定的值,而是直接使用某个随机值,
此时就可以借助于Spring Boot随机值配置的方式。
其格式类似于占位符: ${random.xxx}
random就是Spring容器中RandomValuePropertySource Bean,
因此random能使用哪些属性完全取决于RandomValuePropertySource 的API.
▲ random可生成随机的整数值,随机UUID
【注意:】相当于是Spring Boot一个小bug,当你用int()或者long()来生成带范围的随机值时,
用于分割范围的逗号的前后都不能有空格。
代码示例:引用pom.xml文件和引用随机值
总结:【配置文件中引用其他属性】:
A。 用占位符引用已有的配置属性。 ${}
B. 引用生成文件中的配置属性。
Maven: @属性@
Gradle: ${}, 此时对占位符引用要进行转义。
C. 引用随机值。 ${random.int|long|uuid}