thymeleaf随机数_随机数设置及参数间引用

1.8 随机数设置及参数间引用

​ 在Spring Boot配置文件中设置属性时,除了可以像前面示例中显示的配置属性值外,还可以使用随机值和参数间引用对属性值进行设置。下面,针对配置文件中这两种属性值的设置方式进行讲解

1.8.1随机值设置

​ 在Spring Boot配置文件中,随机值设置使用到了Spring Boot内嵌的RandomValuePropertySource类,对一些隐秘属性值或者测试用例属性值进行随机值注入

​ 随机值设置的语法格式为${random.xx},xx表示需要指定生成的随机数类型和范围,它可以生成随机的整数、uuid或字符串,示例代码如下

properties

my.secret=${random.value} // 配置随机值

my.number=${random.int} // 配置随机整数

my.bignumber=${random.long} // 配置随机long类型数

my.uuid=${random.uuid} // 配置随机uuid类型数

my.number.less.than.ten=${random.int(10)} // 配置小于10的随机整数

my.number.in.range=${random.int[1024,65536]} // 配置范围在[1024,65536]之间的随机整数

​ 上述代码中,使用RandomValuePropertySource类中random提供的随机数类型,分别展示了不同类型随机值的设置示例

1.8.2参数间引用

​ 在Spring Boot配置文件中,配置文件的属性值还可以进行参数间的引用,也就是在后一个配置的属性值中直接引用先前已经定义过的属性,这样可以直接解析其中的属性值了。

使用参数间引用的好处就是,在多个具有相互关联的配置属性中,只需要对其中一处属性预先配置,其他地方都可以引用,省去了后续多处修改的麻烦

​ 参数间引用的语法格式为${xx},xx表示先前在配置文件中已经配置过的属性名,示例代码如下

properties

app.name=MyApp

app.description=${app.name} is a Spring Boot application

​ 上述参数间引用设置示例中,先设置了“app.name=MyApp”,将app.name属性的属性值设置为了MyApp;接着,在app.description属性配置中,使用${app.name}对前一个属性值进行了引用

​ 接下来,通过一个案例来演示使用随机值设置以及参数间引用的方式进行属性设置的具体使用和效果,具体步骤如下

​ (1)打开Spring Boot项目resources目录下的application.properties配置文件,在该配置文件中分别通过随机值设置和参数间引用来配置两个测试属性,示例代码如:

properties

随机值设置以及参数间引用配置

tom.age=${random.int[10,20]}

tom.description=tom的年龄可能是${tom.age}

​ 在上述application.properties配置文件中,先使用随机值设置了tom.age属性的属性值,该属性值设置在了[10,20]之间,随后使用参数间引用配置了tom.description属性

​ (2)打开\项目的测试类,在该测试类中新增字符串类型的description属性,并将配置文件中的tom.description属性进行注入,然后新增一个测试方法进行输出测试,示例代码如下

java

@Value("${tom.description}")

private String description;

@Test

public void placeholderTest() {

System.out.println(description);

}

上述代码中,通过@Value("${tom.description}")注解将配置文件中的tom.description属性值注入到了对应的description属性中,在测试方法placeholderTest()中对该属性值进行了输出打印。

执行测试方法placeholderTest() ,查看控制台输出效果

image-20191225172004276

​ 可以看出,测试方法placeholderTest()运行成功,并打印出了属性description的注入内容,该内容与配置文件中配置的属性值保持一致。接着,重复执行测试方法placeholderTest(),查看控制台输出语句中显示的年龄就会在[10,20]之间随机显示

SpringBoot原理深入及源码剖析

​ 传统的Spring框架实现一个Web服务,需要导入各种依赖JAR包,然后编写对应的XML配置文件等,相较而言,Spring Boot显得更加方便、快捷和高效。那么,Spring Boot究竟如何做到这些的呢?

接下来分别针对Spring Boot框架的依赖管理、自动配置和执行流程进行深入分析

2.1 依赖管理

​ 问题:(1)为什么导入dependency时不需要指定版本?

​ 在Spring Boot入门程序中,项目pom.xml文件有两个核心依赖,分别是spring-boot-starter-parent和spring-boot-starter-web,关于这两个依赖的相关介绍具体如下:

1.spring-boot-starter-parent依赖**

在chapter01项目中的pom.xml文件中找到spring-boot-starter-parent依赖,示例代码如下:

xml

org.springframework.boot

spring-boot-starter-parent<11./artifactId>

2.2.2.RELEASE

​ 上述代码中,将spring-boot-starter-parent依赖作为Spring Boot项目的统一父项目依赖管理,并将项目版本号统一为2.2.2.RELEASE,该版本号根据实际开发需求是可以修改的

​ 使用“Ctrl+鼠标左键”进入并查看spring-boot-starter-parent底层源文件,发现spring-boot-starter-parent的底层有一个父依赖spring-boot-dependencies,核心代码具体如下

xml

org.springframework.boot

spring-boot-dependencies

2.2.2.RELEASE

../../spring-boot-dependencies

继续查看spring-boot-dependencies底层源文件,核心代码具体如下:

xml

5.15.11

...

8.2.0

8.0.18

2.3.1

2.2.2.RELEASE

2.0.4.RELEASE

1.2.4.RELEASE

5.2.1.RELEASE

Corn-RELEASE

3.0.8.RELEASE

3.28.0

${jakarta-mail.version}

9.0.29

3.0.11.RELEASE

2.0.1

...

从spring-boot-dependencies底层源文件可以看出,该文件通过标签对一些常用技术框架的依赖文件进行了统一版本号管理,例如activemq、spring、tomcat等,都有与Spring Boot 2.2.2版本相匹配的版本,这也是pom.xml引入依赖文件不需要标注依赖文件版本号的原因。

需要说明的是,如果pom.xml引入的依赖文件不是 spring-boot-starter-parent管理的,那么在pom.xml引入依赖文件时,需要使用标签指定依赖文件的版本号。

刚学了拉勾教育的《Java工程师高薪训练营》,看到刚学到的点就回答了。希望拉勾能给我推到想去的公司,目标:字节!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值