• spring boot yaml 自定义配置 映射到 java POJO


    只需要一个注解就ok: 

    @ConfigurationProperties("user.other")

    “user.other” 这个值匹配的是user下的other对象

    yaml :

    yaml 的语法:  https://yaml.org/spec/1.2/spec.html#directive//

    user:
      user-name: addiction
      age: 19
      friends:
        - Smith
        - Shadow
        - Kathrin
      other:
        grand-test: test
        color: colorful
        price: '$223'
        test:
          -
            user-name: addiction
            age: 19
          -
            user-name: addiction
            age: 19
          -
            user-other: addiction
            age-other: 19
        other:
          test: "this is test"
          nums:
            - 1
            - 2
            - 65

    UserProperty类: 

    其中的属性名要和yml一一对应,  grandTest 在 yml 中对应的是 grand-test, 会自动转成驼峰

    用 lombok 的 @Data  注解 生成getter/setter, 加上spring 的 @Component 方便 依赖注入

    @Data
    @Component
    @ConfigurationProperties("user.other")
    public class UserProperty {
        private String grandTest;
        private String color;
        private String price;
    
        private List<Map<String, Object>> test;
    
        private Other other; //POJO 类
    }

    Other 类

    @Data
    public class Other {
    
        private String test;
    
        private List<Integer> nums;
    }

    测试结果: 

    测试基类

    package com.example.demo;
    
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class BaseTest {
    }

    另外还可使用@Value注解修饰属性来获取yaml中的内容:

    @Value("${user.other.color}")
    private String color;
  • 相关阅读:
    Django的高级用法
    Django信号和缓存
    初识Django框架
    虚拟化之KVM(上)
    jQuery操作页面-day13
    SSM整合
    新闻发布系统
    jsp
    分层
    简单工厂
  • 原文地址:https://www.cnblogs.com/jxlsblog/p/10599181.html
Copyright © 2020-2023  润新知