spring boot支持在系统加载的时候配置随机数。
添加config/random.properties文件,添加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
|
#随机 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 ]}
|
添加绑定类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
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的配置类:
1
|
org.springframework.boot.context.config.randomvaluepropertysource
|
来看下它的源码,实现其实很简单。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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 配置随机数技巧,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/javastack/archive/2018/05/23/9075673.html