• SpringBoot学习9 - 随机数RandomValuePropertySource


    1. 随机数RandomValuePropertySource

    官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config.random-values

    作用: 可注入到配置文件中

    文档入口

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    格式
    格式(左闭右开)
    格式
    格式(左闭右开)
    格式
    格式
    支持的随机数类型
    int
    random.int
    random.int(最小数字,最大数字)
    long
    random.long
    random.long(最小数字,最大数字)
    uuid
    random.uuid
    32字节数组内容的16进制md5字符串
    random.任意字符(不填也行))

    使用1:方法调用

        @Test
        public void test1() {
    
            RandomValuePropertySource test = new RandomValuePropertySource("test");
    
            Console.log("数字格式必须遵守:要么random.数字类型,要么random.[数字类型][分隔符1][最小数字],[最大数字][分隔符2]");
            Console.log("\n===========随机的int数字===========");
            Console.log("=====不限定范围====");
            Integer intNum = (Integer) test.getProperty("random.int");
            Console.log(intNum);
            Console.log("=====限定范围(左闭右开)下面两个表达的意思是一样的====");
            intNum = (Integer) test.getProperty("random.int(1,2)");
            Console.log(intNum);
            intNum = (Integer) test.getProperty("random.int[1,2)");
            Console.log(intNum);
    
            Console.log("\n===========随机的long数字===========");
            Console.log("=====不限定范围====");
            Long longNum = (Long) test.getProperty("random.long");
            Console.log(longNum);
            Console.log("=====限定范围(左闭右开)====");
            longNum = (Long) test.getProperty("random.long(100,200)");
            Console.log(longNum);
    
            Console.log("\n===========随机的uuid===========");
            String uuid = (String) test.getProperty("random.uuid");
            Console.log(uuid);
    
            Console.log("\n===========随机的md5字符串===========");
            String md5 = (String) test.getProperty("random.");
            Console.log(md5);
            md5 = (String) test.getProperty("random.");
            Console.log(md5);
            md5 = (String) test.getProperty("random.rwewerwerewre");
            Console.log(md5);
        }
    
    • 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

    在这里插入图片描述

    使用2:注入到配置文件中

    注意: 每次调用获取都会不一样,或者在不同的组件Bean中注入也不一样


    application.yml

    my:
      num: ${random.long}
      num2: ${random.int(100,200)}
    
    • 1
    • 2
    • 3
    Environment获取

    Spirngboot226ApplicationTests.java

    @SpringBootTest
    class Spirngboot226ApplicationTests {
    
        @Autowired
        Environment environment;
        
        @Test
        void contextLoads5() {
    
            String property = environment.getProperty("my.num");
            Console.log(property);
    
            property = environment.getProperty("my.num");
            Console.log(property);
            
            property = environment.getProperty("my.num2");
            Console.log(property);        
    
            property = environment.getProperty("my.num2");
            Console.log(property);
    
    
        }
    
    }
    
    • 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

    在这里插入图片描述

    @Value注入

    TestController.java

    @RequestMapping("test")
    @Controller
    @Getter
    public class TestController {
    
        @Value("${my.num}")
        Long random;
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9


    Test2Controller.java

    @RequestMapping("test")
    @Controller
    @Getter
    public class Test2Controller {
    
        @Value("${my.num}")
        Long random;
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9


    Spirngboot226ApplicationTests.java

    @SpringBootTest
    class Spirngboot226ApplicationTests {
    
        @Autowired
        TestController testController;
    
        @Autowired
        Test2Controller test2Controller;
    
        @Test
        void contextLoads8() {
    
            Long random = testController.getRandom();
            Console.log(random);
    
            random = testController.getRandom();
            Console.log(random);
    
            random = test2Controller.getRandom();
            Console.log(random);
    
            random = test2Controller.getRandom();
            Console.log(random);
    
        }
    
    }
    
    • 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

    在这里插入图片描述

  • 相关阅读:
    PostgreSQL
    git---更新gitignore文件,使之生效
    互联网Java工程师面试题·Memcached篇·第一弹
    RESTful风格学习笔记【包含示例】
    Pylint检查规则中文版
    SOCKS55代理与Http代理有何区别?如何选择?
    二维偏序问题
    ElasticSearch 入门
    解决:在单项目组件里面引入 base.scss/ base.less 等的外部文件不成功的问题
    【SpringBoot2】开发实用篇-配置高级
  • 原文地址:https://blog.csdn.net/weixin_39651356/article/details/126859816