SpringBoot读取Yml中基本数据类型、List、Map、数组数据

目录

SpringBoot读取Yml中基本数据类型、List、Map、数组数据

1、概述        

2、读取基本数据类型

3.1、读取对象List

3.2、读取String的List集合

4、读取数组

5、 读取Map数据


1、概述        

        在实际项目开发过程中,经常需要读取yml或者properties配置的数据,以yml配置文件为例,接下来将演示如何读取基本数据类型、List、Map、数组数据。

pom文件需要添加依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>

2、读取基本数据类型

yml配置:

custom:
  string:
    value: test

代码实现:

使用@Value注解即可

@Value("${custom.string.value}")
private String stringValue;

结果:

3.1、读取对象List

yml配置

custom:
  beanlist:
    value:
      - name: 张三
        age: 18
      - name: 李四
        age: 20
      - name: 王五
        age: 22

        这里需要注意的是,定义list集合不能用@value注解来获取list集合的值,需要定义一个配置类bean,然后使用@ConfigurationProperties注解来获取list集合值,做法如下:

User实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User{
    public String name;
    public Integer age;
}

配置类

@Data
@Component
@ConfigurationProperties(prefix = "custom.beanlist")
public class CustomBeanListConfig {
    List<User> value;
}

用法:

    @Autowired
    private CustomBeanListConfig customBeanListConfig;

    public void test() {
        System.out.println("读取对象List:" + customBeanListConfig.getValue());
    }

结果:

3.2、读取String的List集合

yml配置

custom:
  list:
    value:
      - 1
      - 2
      - 3

 定义配置bean使用@ConfigurationProperties注解获取对象集合值。

创建配置类

@Data
@Component
@ConfigurationProperties(prefix = "custom.list")
public class CustomListConfig {

    List<String> value;
}

用法:

    @Autowired
    private CustomListConfig customListConfig;

    public void test() {
        System.out.println("读取List:" + customListConfig.getValue());
    }

结果:

4、读取数组

yml配置

custom:
  array:
    value: 1,2,3

用法:

@Value("${custom.array.value}")
private String[] arrayValue;

public void test() {
        System.out.println("读取数组:");
        Arrays.stream(arrayValue).forEach(s -> System.out.println(s));
    }

结果:

5、 读取Map数据

yml配置

custom:
  map:
    value: {name: 张三,age: 99}

 定义配置bean使用@ConfigurationProperties注解获取对象集合值。

创建配置类

@Data
@Component
@ConfigurationProperties(prefix = "custom.map")
public class CustomMapConfig {
    Map<String,String> value;
}

用法:

    @Autowired
    private CustomMapConfig customMapConfig;

    public void test() {
        System.out.println("读取Map:");
        System.out.println(customMapConfig.toString());
    }

结果:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐