首页 > 其他分享 >SpringBoot中读取yml中配置的list对象的配置项

SpringBoot中读取yml中配置的list对象的配置项

时间:2024-01-04 11:00:33浏览次数:30  
标签:SpringBoot 配置文件 list private locator import yml


场景

SpringBoot中通过ConfigurationProperties注解的方式读取application.yml中配置的属性值:

SpringBoot中通过ConfigurationProperties注解的方式读取application.yml中配置的属性值_demoenabled: true

参考上面获取yml配置文件中简单的配置项的方式。

如果需要获取application.yml中配置的list数据,且每个list有多个属性的内容,比如下面添加在application.yml中的内容

locators:
  locatorList:
    - id: 0
      slaveId: 1
      offset: 0
    - id: 1
      slaveId: 1
      offset: 1
    - id: 2
      slaveId: 1
      offset: 2

可以通过如下方式实现。

注:

博客:
霸道流氓气质_C#,架构之路,SpringBoot

实现

1、添加依赖

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

2、新建一个实体类,字段与配置文件中list的每个对象属性相同

import lombok.Data;

@Data
public class Locator {
    private Integer id;
    private Integer slaveId;
    private Integer offset;
}

3、新建一个配置类,添加注解

import com.badao.demo.entity.Locator;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;

@Component
@Data
@ConfigurationProperties(prefix = "locators")
public class LocatorConfig {
    private List<Locator> locatorList;
}

前缀与配置文件中一致,属性名与配置文件中前缀下面的一致。

4、在需要使用该配置类的地方注入

@Autowired
    private LocatorConfig locatorConfig;

5、使用示例

BatchRead<Integer> batch = new BatchRead<>();
        List<Locator> locatorList = locatorConfig.getLocatorList();
        locatorList.forEach(locator -> batch.addLocator(locator.getId(), BaseLocator.coilStatus(locator.getSlaveId(),locator.getOffset())));

6、读取结果

SpringBoot中读取yml中配置的list对象的配置项_list

标签:SpringBoot,配置文件,list,private,locator,import,yml
From: https://blog.51cto.com/BADAOLIUMANGQZ/9097104

相关文章

  • 记录Springboot项目部署到服务器
    搞了一个月,开发了一个缩减版的管理系统,主要功能:对于进入海康门禁的老师,需要填报使用记录。用Springboot开发真的是便捷,专注于业务开发,不关心底层和架构。第一步:搭建配置服务器服务器:虚拟机Windows2016Server 64bit,内存32G,磁盘400GMysql:8.0.34Springboot:3.0.11IDEA:2023.1Ja......
  • PACS医学影像系统源码,支持Worklist服务,三维影像后处理和分析功能
    PACS/RIS医学影像存储和传输系统,实现从预约、登记、分诊、排队叫号、检查、诊断阅片、报告发布、自助胶片打印等流程化管理。PACS系统应用在医院影像科时,它直接与CT、MR、ECT、DSA和DR等提供DICOM标准图像的医学设备进行软硬对接。该系统应用在超声、内窥镜、病理等科室时,提供视频......
  • 【微服务】springboot整合kafka-stream使用详解
    目录一、前言二、kafkastream概述2.1什么是kafkastream2.2为什么需要kafkastream2.2.1对接成本低2.2.2节省资源2.2.3使用简单2.3kafkastream特点2.4kafkastream中的一些概念2.5 KafkaStream应用场景三、环境准备3.1搭建zk3.1.1自定义docker网络3.1.2 拉取zk镜像3.......
  • 【JDK新特性】JDK和Springboot各版本新特性介绍
    目录参考资料以下是一些较新版本的JDK的主要新特性介绍:JDK8:Lambda表达式:引入了函数式编程的概念,使得代码更简洁、可读性更强。StreamAPI:提供了一种高效处理集合数据的方式,支持并行处理。默认方法(DefaultMethods):接口可以包含具有默认实现的方法。方法引用(MethodReferences):通过......
  • 【C++】STL 容器 - list 双向链表容器 ② ( list 常用 api 简介 | 首尾 添加 / 删除
    文章目录一、元素操作1、首尾添加/删除元素2、获取首尾元素二、迭代器遍历容器1、正向迭代与反向迭代2、代码示例一、元素操作1、首尾添加/删除元素list双向链表容器提供了push_back、pop_back、push_front和pop_front等一系列用于操作列表元素的成员函数,函......
  • 【C++】STL 容器 - list 双向链表容器 ① ( 容器特点 | 容器操作时间复杂度 | 构造函
    文章目录一、list双向链表容器简介1、容器特点2、容器操作时间复杂度3、遍历访问5、头文件二、list双向链表容器构造函数1、默认无参构造函数2、创建包含n个相同元素的list双向链表3、使用初始化列表构造list双向链表4、使用另外一个list容器构造list双向链表容器......
  • 【C++】STL 容器 - list 双向链表容器 ③ ( list 常用 api 简介 | 中间位置 插入 / 删
    文章目录一、list双向链表容器的中间位置插入元素1、在指定位置插入1个元素-insert函数2、在指定位置插入n个相同元素-insert函数3、中间位置插入另一个容器的指定范围内的元素-insert函数二、list双向链表容器的中间位置删除元素1、删除容器中所有元素......
  • 【JDK源码】Java中LinkedList的实现
    JDK版本:1.8.0_271基础介绍LinkedList底层数据结构是一个双向链表:链表的每个节点叫做Node,在Node中,prev属性表示前一个节点的位置,next属性表示后一个节点的位置first是双向链表的头节点,它的前一个节点是nulllast是双向链表的尾节点,它的后一个节点是null当链表中没有数据时,fi......
  • 【JDK源码】ArrayList的代码实现
    JDK版本:1.8.0_271基础介绍ArrayList底层数据结构就是一个数组:index表示数组下标,从0开始计数,elementDatda表示数组本身DEFAULT_CAPACITY表示数组的初始化大小,默认是10size表示数组的大小,int类型,没有使用volatile修饰,非线程安全modCount统计当前数组被修改的版本次数,数......
  • SpringBoot接入Mybatis-Flex
    相信不少的伙伴在日常开发中应该都用过MyBatis增强框架吧,目前来说国内用的比较多的无非就是MyBatis-Plus,那么今天我再给大家介绍一款新的MyBatis增强框架,它就是MyBatis-Flex。那么这个框架到底怎么样呢,跟MyBatis-Plus有什么不一样的呢,下面我们先来看下它的介绍,这是官网的一段介......