欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot 配置随机数的技巧代码详解

程序员文章站 2023-12-15 16:49:28
spring boot支持在系统加载的时候配置随机数。 添加config/random.properties文件,添加以下内容: #随机32位md5字符串 u...

spring boot支持在系统加载的时候配置随机数。

添加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]}

添加绑定类:

import 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;
  }
}

输出如下:

secret=83a5c3402ef936a37842dc6de3d1af0f
intnumber=1816149855
lessten=1
range=37625
longnumber=8449008776720010146
uuid=e5bc2091-1599-45b1-abd7-e3721ac77e6b

具体的生成细节可以参考spring boot的配置类:

org.springframework.boot.context.config.randomvaluepropertysource

来看下它的源码,实现其实很简单。

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();
}

其实就是使用了 java 自带的 java.util.random java.util.uuid 等工具类,实现很简单,这里就不再详细解析了,大家可以自己去看下这个类的实现。

随机数的生成配置就是这么点了,我知道的是可以随机生成应用程序端口,其他的还真没用到。

总结

以上所述是小编给大家介绍的spring boot 配置随机数技巧,希望对大家有所帮助

上一篇:

下一篇: