随机数的使用你是不是经常用到?我们在进行运行SpringBoot单元测试时一般不会指定应用程序启动时的端口号,可以在application.properties文件内配置server.port的值为${random.int(10000)},代表了随机使用0~10000的端口号。
一、 配置文件方式
先来看看${random.xxx}
具体提供了哪几种的随机配置。
1.1 int随机数
使用${random.int}
方式配置,结果从int
的最大值、最小值中间产生,int
的最小值为-2147483648
,最大值为2147483647
,配置如下所示:
server:
port: ${random.int}
1.2 int范围随机数
使用${random.int(10000)}
方式配置,这种方式我们可以指定随机数的最大值,当然不能超过2147483647
,配置如下所示:
server:
port: ${random.int(10000)}
注意事项:${random.int(10000)}
随机数的值将会在0~10000
之间产生,配置的最大值必须为正整数,如果需要指定随机数的最小值,可以使用${random.int[100,200]}
方式配置,这样只会从100~200
之间产生随机数(包括最小值,不包括最大值)。
2.1 long随机数
使用${random.long}方式配置,结果会从long的最大值、最小值中间产生,long的最小值为-9223372036854775808,最大值为9223372036854775807,配置方式如下所示:
config:
longValue: ${random.long}
其他略......
3.1 uuid随机数
uuid
因为它的唯一性,应该是我们平时开发中比较常用到的。
SpringBoot
也为我们考虑到了这一点,我们只需要使用${random.uuid}
就可以获得一个随机的uuid
字符串,配置方式如下所示:
config:
uuid: ${random.uuid}
二、@Value方式
如果在我们在编码中需要用到随机数的生成,${random}
是支持注入使用的,主要还是因为它的实现继承自PropertySource。
我们可以在Spring IOC所管理的类内直接使用@Value
注解进行注入使用,如下所示:
/**
* 随机生成uuid字符串
*/
@Value("${random.uuid}")
private String uuid;
/**
* 随机生成0~1000的正整数
*/
@Value("${random.int(1000)}")
private int maxInt;
/**
* 随机生成0~102400的long类型数值
*/
@Value("${random.long(102400)}")
private long maxLong;