springBoot yml文件的list读取问题总结(亲测)

本文总结了SpringBoot中YML文件list类型的读取问题,包括配置类定义、启动配置类设置以及正确使用方法。重点指出配置变量名需与YML配置一致,并强调注解的使用范围限制于Spring注解的类内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

折腾了很久,记录下。

配置如下:

# 自定义数据上报信息
xx:
  # 机组信息
    machine1s:
      -   name: XXXX
          frequency: null
          frequency-unit: null
          pressure: 0.01
          pressure-unit: Pa
          flow: 0
          flow-unit: NM3/H
          state: 停机
          runtime: 17.5
          runtime-unit: 天
      -   name: XXXX
          frequency: 42.4
          frequency-unit: HZ
          pressure: 0.39
          pressure-unit: Pa
          flow: 4730
          flow-unit: NM3/H
          state: 运行
          runtime: 12.5
          runtime-unit: 天
      -   name: XXXX
          frequency: 46.4
          frequency-unit: HZ
          pressure: 0.00
          pressure-unit: Pa
          flow: 0
          flow-unit: NM3/H
          state: 停机
          runtime: 8.2
          runtime-unit: 天
      -   name: XXXX
          frequency: 41.4
          frequency-unit: HZ
          pressure: 0.39
          pressure-unit: Pa
          flow: 9532
          flow-unit: NM3/H
          state: 运行
          runtime: 3.2
          runtime-unit: 天
      -   name: XXXX
          frequency: null
          frequency-unit: null
          pressure: 0.38
          pressure-unit: Pa
          flow: 4800
          flow-unit: NM3/H
          state: 停机
          runtime: 20.4
          runtime-unit: 天
      -   name: XXXX
          frequency: null
          frequency-unit: null
          pressure: 0.01
          pressure-unit: Pa
          flow: 0
          flow-unit: NM3/H
          state: 停机
          runtime: 7.5
          runtime-unit: 天

1.定义配置类

@ConfigurationProperties(prefix = "xx")
public class TXMachinesProperties {

    private List<Map<String, String>> machine1s;

    public List<Map<String, String>> getMachine1s() {
        return machine1s;
    }

    public void setMachine1s(List<Map<String, String>> machine1s) {
        this.machine1s = machine1s;
    }

}

注意:

a.这里prefix写到接收对象的前一级即可;

b.这里的变量名必须要与配置的名称一致,才可自动接收。

2.定义启动的配置类,这里其实可与上面的配置类写在一起,但是一个类就是做一件事情,就做了隔离。

@Configuration
@EnableConfigurationProperties({TXMachinesProperties.class})
public class TXMachinesConfig {
}

3.使用方式。

采用下面的方式即可。这里注意,由于使用这个yml的注解是属于SpringBoot的框架内进行的,因此这个属性注入只能在标有Spring的注解的类的范围内使用,不能在普通类使用。

@Autowired
    private TXWorkShopAlarmProperties txWorkShopAlarmProperties;

如还不能解决,欢迎咨询。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值