Spring Boot 配置隨機數那些小技巧
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.
新增繫結類:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
/**
* 微信公眾號:Java技術棧
*/
@Component
@ConfigurationProperties(prefix = "user.random")
@PropertySource(value = {
publicclassRandomConfig {
privateString secret;
privateint intNumber;
privateint lessTen;
privateint range;
privatelong longNumber;
privateString uuid;
publicString getSecret() {
return secret;
}
publicvoid setSecret(String secret) {
this.secret = secret;
}
publicint getIntNumber() {
return intNumber;
}
publicvoid setIntNumber(int intNumber) {
this.intNumber = intNumber;
}
publicint getLessTen() {
return lessTen;
}
publicvoid setLessTen(int lessTen) {
this.lessTen = lessTen;
}
publicint getRange() {
return range;
}
publicvoid setRange(int range) {
this.range = range;
}
publiclong getLongNumber() {
return longNumber;
}
publicvoid setLongNumber(long longNumber) {
this.longNumber = longNumber;
}
publicString getUuid() {
return uuid;
}
publicvoid 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
來看下它的原始碼,實現其實很簡單。
publicRandomValuePropertySource(String name) {
super(name, newRandom());
}
privateObject 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
等工具類,實現很簡單,這裡就不再詳細解析了,大家可以自己去看下這個類的實現。
隨機數的生成配置就是這麼點了,我知道的是可以隨機生成應用程式埠,其他的還真沒用到。
@程式猿 你們還知道其他的隨機數應用麼?
擴充套件閱讀
來源:https://blog.csdn.net/youanyyou/article/details/78993048
相關推薦
Spring Boot 配置隨機數那些小技巧
Spring Boot支援在系統載入的時候配置隨機數。新增config/random.prope
Spring Boot 配置檔案詳解:自定義屬性、隨機數、多環境配置等
相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml中引入模組化的Starter POMs,其中各個模組都有自己的預
Spring Boot 配置文件詳解:Properties和YAML
列表 config 其他 操作系統 des num mat 變量 onf 一.配置文件的生效順序,會對值進行覆蓋: 1. @TestPropertySource 註解 2. 命令行參數 3. Java系統屬性(System.getProperties
spring boot 配置數據源
build -i autowired 1.0 emp aslist private ram apach 以postgreSQL為例,方便下次直接使用。 其中pom.xml引入如下依賴。 <?xml version="1.0" encoding="UTF-8"?>
Spring Boot配置文件規則以及使用方法官方文檔查找以及Spring項目的官方文檔查找方法
lan 屬於 tps pri ati html 查詢 為什麽 發現 比如要使用Spring Boot實現一個功能,最直接的方式是Google,但是往往搜索出來的都比較亂,關鍵是亂在不同的版本上,比如1.x版本和2.x版本的配置是不一樣的。最明顯區別是在使用Thymeleaf
[轉] Spring Boot配置多個DataSource
pro img ssp 情況 每一個 所有 title 進行 rom [From] https://www.liaoxuefeng.com/article/001484212576147b1f07dc0ab9147a1a97662a0bd270c20000 Sprin
Spring Boot參考教程(六)Spring Boot配置Servlet,Filter,Listener,Interceptor
cat http list err oot (六) water iter fontsize 4.2.5. Spring Boot配置Servlet,Filter,Listener,Interceptor 1. 配置Servlet 在開發中一些場景常會使用到servlet
Spring Boot參考教程(五)Spring Boot配置使用之配置類用法
expr web程序 成功 驗證 pan hub parameter lan fix 4.2. SpringBoot配置使用之配置類使用 Spring Boot的大部分自動配置都可以滿足應用要求,但如果想精確的控制應用,或者想覆蓋自動配置,使用配置類是另一種很好的選擇,強調
Spring Boot參考教程(四)Spring Boot配置使用之配置文件用法
point rop 推薦書 endpoint size int == 需要 相同 4.1 Spring Boot配置使用之配置文件用法 Spring Boot旨在簡化配置,但依然需要進行少量配置來滿足應用的特定需要。 配置方式拋棄了XML文件的配置方式,主要使用配置文件
Spring Boot 配置優先級順序
快速 cal yam evel configure 文件讀取 @value request 容器 一般在一個項目中,總是會有好多個環境。比如: 開發環境 -> 測試環境 -> 預發布環境 -> 生產環境 每個環境上的配置文件總是不一樣的,甚至開發環境中
【日常錯誤】spring-boot配置文件讀取不到
無法 pan factory sdn 一個 pre nco span xxx 最近在用spring-boot做項目時,遇到自定義的配置文件無法讀取到的問題,通過在appcation.java類上定義@PropertySource(value = {"classpath:XX
spring-boot配置文件使用
one rop boot 生產 參數 註解註入 環境 開發環境 ring 配置文件格式兩種application.properties和application.yml .yml配置的使用 1、使用@Value("${配置文件中的屬性名}")註解註入配置內容 2、在配置中引用
spring boot配置mybatis和事務管理
生成 很多 -s 順序 south 位置 ron 技術 username spring boot配置mybatis和事務管理 一、spring boot與mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依賴如下: <!-- Spri
Spring Boot配置文件放在jar外部
最大 config文件 cati res 記事本 log classpath dev 不想 Spring Boot程序默認從application.properties或者application.yaml讀取配置,如何將配置信息外置,方便配置呢? 查詢官網,可以得到下面的幾
Spring Boot 配置swagger2沒有文檔解決方案
post and request oot quest swagger date sele ota @Bean public Docket customImplementation(){ return new Docket(Documentation
詳解Spring Boot配置文件之多環境配置
多個 提高效率 橫線 文件 style ica property form blog 一. 多環境配置的好處: 1.不同環境配置可以配置不同的參數~ 2.便於部署,提高效率,減少出錯~ 二. properties多環境配置 1. 配置激活選項 spring.profile
多路由器環境配置的一些小技巧(達內)
總結 color 條目 nag 知識 rip路由 內網 限制 images rip 的簡單應用,希望通過這個可以讓幹運維的同仁輕松一點實驗拓撲圖:實驗需求:當內網中有很多路由器或多層交換機是,不同網段間通信 ,需要配置動態路由,如手動配置很浪費時間,容易出錯,可以選擇使用r
.netcore2.0 Startup 全局配置文件小技巧
.com 圖片 配置 alt nbsp body 小技巧 sta start .netcore2.0 Startup 全局配置文件小技巧
spring boot 配置swagger UI
require onf efault 字段 url http .cn imp selector springboot集成swaggerUI 有這樣的需求 1.在每個接口上都增加一個字段; 2.接口文檔只展示滿足一定條件URL的接口 配置文件 詳細看代碼 import or
spring boot配置service發布服務
too local can word oot servlet init except def 在application.yml中配置 server: port: 8080 context-path: /crm spring: datasource: d