首页 > 编程笔记 > Java笔记

Spring Boot配置生成随机数(小白必看)

在项目开发过程中,可能需要配置生成随机数,比如说随机配置的服务器端口、随机生成登录密钥等等。Spring Boot 支持在系统加载时配置随机数,使用 ${random} 可以生成各种不同类型的随机值,从而简化代码生成的麻烦,例如生成 int 值、long 值、string 字符串。

Spring Boot 提供的 RandomValuePropertySource 配置类可以很方便地生成随机数,可以生成 integer、long、uuids 和 string 类型的数据。下面通过示例来演示如何配置生成随机数。

首先,在 application.properties 中添加随机数的配置项。
# 随机字符串
cfg.random.value=${random.value}
# uuid
cfg.random.uuid=${random.uuid}
# 随机int
cfg.random.number=${random.int}
# 随机long
cfg.random.bignumber=${random.long}
# 10以内的随机数
cfg.random.test1=${random.int(10)}
# 10-20的随机数
cfg.random.test2=${random.int[10,20]}
上面的示例中,在 application.properties 配置文件中增加配置项以使用 ${radom.xxx} 的形式实现生成随机数。

然后,创建配置映射类 ConfigRandomValue 获取随机数配置项,读取配置项的方式和读取普通配置项的方式一样:通过 @Value 或者 @ConfigurationProperties 注解来读取。

示例代码如下:
@Component
public class ConfigRandomValue {
    @Value("${cfg.random.value}")
    private String secret;
    @Value("${cfg.random.number}")
    private int number;
    @Value("${cfg.random.bignumber}")
    private long bigNumber;
    @Value("${cfg.random.uuid}")
    private String uuid;
    @Value("${cfg.random.test1}")
    private int number2;
    @Value("${cfg.random.test2}")
    private int number3;

    //省略get、set
}
在上面的示例中,我们创建了 ConfigRandomValue 配置生成类,通过 @Value 注解读取了配置文件中的配置。

最后,验证随机数配置是否生效。创建单元测试,验证随机数是否生成成功。示例代码如下:
@Autowired
private ConfigRandomValue randomValue;

@Test
void getRandom() {
    System.out.println(randomValue.getSecret());
    System.out.println(randomValue.getUuid());
    System.out.println(randomValue.getBigNumber());
    System.out.println(randomValue.getNumber());
    System.out.println(randomValue.getNumber2());
    System.out.println(randomValue.getNumber3());
}
在上面的示例中,首先注入了自定义的随机数生成配置类,然后调用了相关的配置项来验证随机数规则是否生效。

声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。