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

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

时间:2023-12-29 10:35:43浏览次数:39  
标签:SpringBoot 配置文件 配置 list private import yml

场景

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

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108385148

参考上面获取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

可以通过如下方式实现。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

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,配置文件,配置,list,private,import,yml
From: https://www.cnblogs.com/badaoliumangqizhi/p/17934190.html

相关文章

  • idea 项目加载 全线飘红, @Service飘红,连 import java.util.List; 也飘红,终极解决方案
    常规方案:1、maven,检查maven配置,重新加载maven依赖,重新加载项目,把maven的本地私库删了重新下载2、检查idea配置,jdk配置,加载的项目的配置,idea清理缓存重启,等等3、是否更新了其他idea配置,比如git忽略文件里是否添加了*.class 4、重新安装idea5、及其他以上方案自行百度,都可以......
  • Java 实现List反转(reverse)的方法
    ​ List的反转是一种常见的操作,反转List会改变列表中元素的顺序,可以根据具体的需求在程序中实现不同的功能和行为。本文主要介绍Java中实现List反转(reverse)的方法,以及相关的示例代码。1、使用for循环实现使用for循环对List进行倒序遍历,添加到一个List中实现反转。代码示......
  • 【SpringBoot零基础入门到项目实战②】安装Java和Maven,创建你的第一个项目
    文章目录导言安装JavaWindows系统macOS系统Linux系统安装和配置MavenWindows系统macOS系统Linux系统配置Maven本地仓库使用阿里镜像加速创建第一个SpringBoot项目拓展学习(提前了解后面会讲到)1.深入理解SpringBoot的项目结构2.学习SpringBoot的自动配置3.掌握SpringBoot......
  • Java 系统学习 | Springboot 写 hello world
    经过一段时间基础学习,现在开始使用Springboot框架完成项目,特地记录一下,方便后续查漏补缺。本篇使用Springboot3框架,IDEA2022编辑器,java17版本。新建项目file->new->project弹框中填入自己的信息Name项目名称Location项目存放路径LanguageJavaB......
  • 如何使用 Prometheus 监控SpringBoot系统
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享在从零开始:使用Prometheus与Grafana搭建监控系统中,主要讲解了如何使用监控系统资源并进行告警,这节主要分享下,如何在业务系统中使用Prometheus来监控业务系统指标,业务系统使用SpringBoot构建。我们要......
  • 手把手从安装本地虚拟机,基于docker,部署springboot+vue项目(若依框架前后端分离版本演示
    目录1.安装本地虚拟机centos2.安装docker,拉取镜像,创建容器3.打包部署后端4.配置nginx5.打包部署前端6.常见问题汇总1.安装本地虚拟机centos部署环境提供vm16,和centos7,其中把镜像改成.iso文件就可以了阿里云链接:https://www.alipan.com/s/BTnpjuHWtEp为什么用阿里云,不限速啊,秉......
  • SpringBoot+JaywayJsonPath实现Json数据的DSL(按照指定节点表达式解析json获取指定数
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:若依前后端分离版手把手教你本地搭建环境并运行项目_前后端分离项目本地运行在上面搭建SpringBoot项目的基础上,并且在项目中引入fastjson、hutool等所需依赖后。JaywayJsonPath:GitHub-json-path/JsonPath:JavaJsonPathi......
  • 【SpringBoot快速入门】(4)SpringBoot项目案例代码示例
    目录1创建工程3配置文件4静态资源之前我们已经学习的Spring、SpringMVC、Mabatis、Maven,详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例,上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动,从这一节开始,我们开始学习SpringBoot配置文件。接下来......
  • 24-集合(主要介绍ArrayList)
    ArrayList长度可变的原理1)当创建ArrayList集合容器的时候,底层会存在一个长度为10哥大小的空数组2)当容器的大小不满足时,创建(扩容)原数组1.5倍大小的新数组3)将原数组数据,拷贝到新数组中4)将新元素添加到新数组 ArrayList集合的构造方法1)publicArrayList():创建一个空的集......
  • 【SpringBoot快速入门】(3)SpringBoot整合junit和MyBatis 详细代码示例与讲解
    目录1.SpringBoot整合junit1.1环境准备1.2编写测试类2.SpringBoot整合mybatis2.1回顾Spring整合Mybatis2.2SpringBoot整合mybatis2.2.1创建模块2.2.2定义实体类2.2.3定义dao接口2.2.4定义测试类2.2.5编写配置2.2.6测试2.2.7使用Druid数据源之前我们已经学习的Spring、......