Spring Boot的properties配置檔中,屬性值可直接使用${random.*}
來產生隨機值。
例如下面是一個簡單的Spring Boot應用程式,及application.properties
設定檔。
application.properties
my.random.value=${random.value}
my.random.int=${random.int}
my.random.long=${random.long}
my.random.uuid=${random.uuid}
my.random.int.lt=${random.int(10)}
my.random.int.range=${random.int[1024,65536]}
在Spring Boot的SpringBootApplication類別中取得applicatoin.properties
的中設定的random.*
屬性並印出結果。
package com.abc.demo;
import java.util.UUID;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
@Value("${my.random.value}")
private String randomValue;
@Value("${my.random.int}")
private Integer randomInt;
@Value("${my.random.long}")
private Long randomLong;
@Value("${my.random.uuid}")
private UUID randomUUID;
@Value("${my.random.int.lt}")
private Integer randomNumberlt;
@Value("${my.random.int.range}")
private Integer randomNumberInRange;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@PostConstruct
private void init() {
System.out.println(randomValue); // d85ec7eb229b0220c41b7b0724834f66 // 32位MD5字串
System.out.println(randomInt); // 880589047
System.out.println(randomLong); // 3975671737419482013
System.out.println(randomUUID); // ff291628-51b5-43f4-b27d-f57074d06aa9
System.out.println(randomNumberlt); // 8
System.out.println(randomNumberInRange); // 52302
}
}
隨機值的產生實際上是由RandomValuePropertySource
產生。
參考:
沒有留言:
張貼留言