springboot yml文件配置Map List等数据

springboot yml文件配置Map List等数据

配置类定义

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Component
@ConfigurationProperties(prefix = "test")
@Getter
@Setter
public class TestConfig {

    private String lastName;
    private Integer age;
    private Boolean bool;
    private Date birth;

    private Map<String, Object> maps;
    private Map<String, String> mapb;
    private Map<String, String> maperro;
    private List<Object> lists;
    private Dog dog;

}
import lombok.Data;

@Data
public class Dog {
    private String name;
    private Integer age;
}

yml 配置

test:
  lastName: hello
  age: 18
  bool: false
  birth: 2121/12/12 13:12:11
  maps: {k1: v1,k2: 12}
  mapb:
    aaaa: 哈哈哈
    bbbb: 45644
    cccc: aggdffd
    '2136456': '#123&'
  maperro:
    - eeee: sgdfsgdf
    - eeee-1: 官方大哥发
    - errr_2: 发过的官方
  lists:
    - str1
    - strA
    - 3333
  dog:
    name: 小狗
    age: 12

使用

    @Autowired
    private TestConfig testConfig;

    @ApiOperation( value = "test")
    @GetMapping("/yml")
    public R testYml(){
        return R.ok().put("dd",testConfig);
    }

在这里插入图片描述

说明

在这里插入图片描述
这样配置yml,取值时候 key会自动带上数字

Spring Boot中,可以使用`@Value`注解或者`Environment`对象手动解析`application.yml`中的配置,但它们不支持直接映射为复杂类型如`List<Map<String, Object>>`。为了实现这一功能,可以使用`@ConfigurationProperties`注解配合`@EnableConfigurationProperties`或者`@ConstructorBinding`注解来实现复杂配置的绑定。 下面是一个简单的例子,展示如何将`application.yml`中的配置映射到`List<Map<String, Object>>`类型: 首先,在`application.yml`中定义需要映射的配置,例如: ```yaml my-config: list: - key1: value1 key2: value2 - key3: value3 key4: value4 ``` 然后,创建一个配置类并使用`@ConfigurationProperties`注解: ```java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; @Component @ConfigurationProperties(prefix = "my-config") public class MyConfigProperties { private List<Map<String, Object>> list; // getters and setters public List<Map<String, Object>> getList() { return list; } public void setList(List<Map<String, Object>> list) { this.list = list; } } ``` 在这个例子中,`@ConfigurationProperties`注解的`prefix`属性设置为`my-config`,这表明这个配置类将会绑定`application.yml`中`my-config`键下的配置。`List<Map<String, Object>>`将自动填充为配置文件中定义的列表和映射。 使用这种方式,Spring Boot会自动将配置文件中的数据绑定到配置类的属性上,无需手动解析配置文件内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值