跳至主要內容

yml配合@ConfigurationProperties注入

Mr.Hope...小于 1 分钟

1. 常规例子

  1. 先准备好一个配置类,如下:

    1. 使用@ConfigurationProperties该类必须是个bean对象。
    2. 该类必须有setting方法,否则无法注入值。
    @Setter
    @Getter
    @Component
    @ConfigurationProperties(prefix = "test")
    public class TestConfig {
        // 字符串
        private String userName;
        // Integer
        private Integer sum;
        // boolean
        private boolean flag;
    
        private int size;
        // 对象
        private Person person;
        // List<对象>
        private List<Person> personList;
        // Map<String, 对象>
        private Map<String, Person> map;
    
        @Setter
        @Getter
        static class Person {
    
            private String name;
    
            private int age;
        }
    }
    
    
  2. yml文件写法如下

    test:
      user-name: test1
      sum: 20
      flag: false
      size: 100
      person:
        name: person1
        age: 18
      person-list:
        - name: person1
          age: 1
        - name: person2
          age: 2
        - name: person3
          age: 3
      map:
        key1:
          name: map1
          age: 1
        key2:
          name: map2
          age: 2
    
    
  3. 结果

    image-20240419094357813

2. 非常规例子(不建议)

  1. ConfigurationProperties不配prefix,默认是从yml文件根结构开始,如下例子:

    @Setter
    @Getter
    @Component
    @ConfigurationProperties()
    public class TestConfig {
    
        // List<对象>
        private List<Person> personList;
    
        @Setter
        @Getter
        static class Person {
    
            private String name;
    
            private int age;
        }
    }
    
    
  2. yml编写

    person-list:
      - name: person1
        age: 1
      - name: person2
        age: 2
      - name: person3
        age: 3
    
  3. 结果

    image-20240419094547373