網頁

2019/7/16

Spring Boot 在Properites檔中使用${random.*}來產生隨機值。

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產生。


參考:

沒有留言:

張貼留言