zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Spring Boot 配置随机数技巧详解编程语言

SpringBoot配置编程语言 详解 技巧 随机数
2023-06-13 09:20:46 时间

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 Cloud 最强技术教程

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/16268.html

cjava