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