• spring boot 配置随机数那些小技


    Spring Boot 是支持在系统加载的时候配置随机数的

    1.添加config/random.properties文件

    #随机32位MD5字符串
    user.random.secret=${random.value}
    #随机int数字
    user.random.intNumber=${random.int}
    #随机long数字
    user.random.longNumber=${random.long}
    #随便uuid
    user.random.uuid=${random.uuid}
    #随机10以内的数字
    user.random.lessTen=${random.int(10)}
    #随机1024~65536之内的数字
    user.random.range=${random.int[1024,65536]}

    2.创建类:

    mport org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.stereotype.Component;
    /**
    * 随机数
    */
    @Component
    @ConfigurationProperties(prefix = "user.random")
    @PropertySource(value = { "config/random.properties" })
    public class RandomConfig {
       private String secret;
       private int intNumber;
       private int lessTen;
       private int range;
       private long longNumber;
       private String uuid;
       public String getSecret() {
           return secret;
       }
       public void setSecret(String secret) {
           this.secret = secret;
       }
       public int getIntNumber() {
           return intNumber;
       }
       public void setIntNumber(int intNumber) {
           this.intNumber = intNumber;
       }
       public int getLessTen() {
           return lessTen;
       }
       public void setLessTen(int lessTen) {
           this.lessTen = lessTen;
       }
       public int getRange() {
           return range;
       }
       public void setRange(int range) {
           this.range = range;
       }
       public long getLongNumber() {
           return longNumber;
       }
       public void setLongNumber(long longNumber) {
           this.longNumber = longNumber;
       }
       public String getUuid() {
           return uuid;
       }
       public void setUuid(String uuid) {
           this.uuid = uuid;
       }
    }

    具体的生成细节可以参考Spring Boot的配置类:org.springframework.boot.context.config.RandomValuePropertySource

      使用了 Java 自带的 java.util.Random 和 java.util.UUID 等工具类

    public RandomValuePropertySource(String name) {
       super(name, new Random());
    }
    private Object getRandomValue(String type) {
       if (type.equals("int")) {
           return getSource().nextInt();
       }
       if (type.equals("long")) {
           return getSource().nextLong();
       }
       String range = getRange(type, "int");
       if (range != null) {
           return getNextIntInRange(range);
       }
       range = getRange(type, "long");
       if (range != null) {
           return getNextLongInRange(range);
       }
       if (type.equals("uuid")) {
           return UUID.randomUUID().toString();
       }
       return getRandomBytes();
    }
  • 相关阅读:
    mysql8.0.29 rpm安装步骤
    Django创建自定义命令
    BootStrap5应用时tooltips的添加
    mybatis相关转义字符串报错Cause: org.xml.sax.SAXParseException
    【资源共享】RK 单麦克语音通话 3A 算法集成说明及参数 调试说明文档
    k8s docker 中部署think php 并搭建php websocket
    .net core Unicode 转中文
    Webgl多层次模型
    小程序接口申请和隐私文档
    小程序开发入门
  • 原文地址:https://www.cnblogs.com/qinxu/p/14201933.html
Copyright © 2020-2023  润新知