iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >springboot从application.properties中注入list和map方式是什么
  • 665
分享到

springboot从application.properties中注入list和map方式是什么

2023-06-21 21:06:04 665人浏览 八月长安
摘要

本篇内容主要讲解“SpringBoot从application.properties中注入list和map方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot从appli

本篇内容主要讲解“SpringBoot从application.properties中注入list和map方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习springboot从application.properties中注入list和map方式是什么”吧!

需求

在配置类中,从application.properties中读取一个复杂list。如List<Person>或者初始化一个map

直接上代码

配置类

@Configuration@Component@ConfigurationProperties(prefix = "datahub")public class Config {    private List<DatahubParam> datahubParams;     private Map<String, Object> map;     public void setMap(Map<String, Object> map) {        this.map = map;    }     public Map<String, Object> getMap() {        return map;    }     public List<DatahubParam> getDatahubParams() {        return datahubParams;    }     public void setDatahubParams(List<DatahubParam> datahubParams) {        this.datahubParams = datahubParams;    }}

DatahubParam.java:

public class DatahubParam {    private String project;    private String topic;    private String subId;    private String shardId;     @Override    public String toString() {        return "{project: " + project + ", topic: " + topic + ", subId: " + subId + ", shardId: " + shardId + "}";    }     public String getProject() {        return project;    }     public void setProject(String project) {        this.project = project;    }     public String getTopic() {        return topic;    }     public void setTopic(String topic) {        this.topic = topic;    }     public String getSubId() {        return subId;    }     public void setSubId(String subId) {        this.subId = subId;    }     public String getShardId() {        return shardId;    }     public void setShardId(String shardId) {        this.shardId = shardId;    } }

application.properties:

datahub.datahub-params[0].project = project-0datahub.datahub-params[0].topic = topic-0datahub.datahub-params[0].sub-id = subId-0datahub.datahub-params[0].shard-id = shardId-0 datahub.datahub-params[1].project = project-1datahub.datahub-params[1].topic = topic-1datahub.datahub-params[1].sub-id = subId-1datahub.datahub-params[1].shard-id = shardId-1 datahub.map.username=uweidatahub.map.age=22datahub.map.salary=15000

测试

@RunWith(SpringRunner.class)@SpringBootTestpublic class HelloTest {    @Autowired    Config config;     @Test    public void test(){        System.out.println(config.getDatahubParams());        System.out.println(config.getMap());    }}

运行结果:

springboot从application.properties中注入list和map方式是什么

application.properties配置注入出现错误

配置list,map(list内含对象)多层嵌套问题,注入对象失败,无法加载到配置文件

继SpringBoot使用@Value无法赋值之后,kimball又遇到一个application.properties配置注入问题,可能作为新手,这里该踩得坑都掉下去了~真是一踩一个准。

问题描述

application.properties配置注入出现错误,配置list,map(list内含对象)多层嵌套问题,注入对象失败,无法加载到配置文件。后询问多方大神,仍无法加载,那么自己慢慢测试吧。

我的目录结构是这样:对象建立了postinfolist>postinfo>header三层结构,header内含Map键值对,postinfolist是postinfo的List集合,故也算是个多层嵌套的格式。一开始我的配置如下:

springboot从application.properties中注入list和map方式是什么

springboot从application.properties中注入list和map方式是什么

springboot从application.properties中注入list和map方式是什么

springboot从application.properties中注入list和map方式是什么

大概情况应该是描述清楚了吧,下面我们来分析没有加载到配置文件的错误原因及分析方法。

作为freshman,我只是一步步验证,既然加载不到这么多层,那么我从最低层header验证,单独配置了下header,header.headerMap.AppKey=xxx(header prefix注意修改),结果加载到了,那么好,说明不是配置文件加载啊或是引入啊什么的问题,应该是多层嵌套自己写的有误。

那么第二步,往上一层,配置postinfo.header.headerMap.AppKey=xxx(prefix对应修改,不在多说),又加载到了,那么可以知道问题所在了,配置postinfolist时,List这块儿配置的不正确。这样一步步排查,我们可以找到问题所在,所以有问题,先想排查方法,找到问题所在就可以迎刃而解,本质有点像方法论~

那么再回看这个配置文件,此时对application.properties的配置也有点领悟了,实际上就是 自上而下的表达出你要注入的参数,也就是我的上层postinfolist(Springboot帮我们注入时先找这个最上级),而后一点一点往后去找对应关系,也就是先找到对象内的postinfolist这个List集合,即对象的成员变量,那么配置我们就可以写postinfolist.postinfolist获得了List集合,而后要表达集合里的postinfo,postinfolist.postinfolist[0],即相当于list.get(0),这么来看是不是很容易理解application的配置文件写法了,而后再逐层表示到你要注入的参数即可,也就是postinfolist.postinfolist[0].header.headerMap.AppKey,之前的写法只是觉得是对应上prefix的前缀就可以读到了,而其实Springboot为我们做的更多,将你写的对象通过一步步层级关系来分析注入,也算是新人对Springboot的一点敬仰吧,之前接触过一段ssh,那是一段痛苦的历程,很多东西要自己配置,而springboot真是让我们把重心放在开发功能上而不是繁琐的配置文件上。

到此,相信大家对“springboot从application.properties中注入list和map方式是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: springboot从application.properties中注入list和map方式是什么

本文链接: https://www.lsjlt.com/news/300767.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot从application.properties中注入list和map方式是什么
    本篇内容主要讲解“springboot从application.properties中注入list和map方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot从appli...
    99+
    2023-06-21
  • springboot从application.properties中注入list, map方式
    目录需求直接上代码配置类测试类application.properties配置注入出现错误问题描述需求 在配置类中,从application.properties中读取一个复杂lis...
    99+
    2024-04-02
  • springboot application.properties文件注入数组方式是什么
    这篇文章主要介绍“springboot application.properties文件注入数组方式是什么”,在日常操作中,相信很多人在springboot application.properties文件注入数组方式是什么问题上存在疑惑,...
    99+
    2023-06-25
  • mybatis注解动态sql注入map和list方式(防sql注入攻击)
    目录网上的教程我的教程(防sql注入攻击)注入Map注入List封装foreachmybatis防止sql注入的循环map写法网上的教程 配置xml 注解中写xml...
    99+
    2024-04-02
  • springboot yml配置文件值的注入方式是什么
    这篇文章跟大家分析一下“springboot yml配置文件值的注入方式是什么”。内容详细易懂,对“springboot yml配置文件值的注入方式是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够...
    99+
    2023-06-26
  • Mybatis查找返回Map,List集合类型的数据方式是什么
    这篇文章主要介绍“Mybatis查找返回Map,List集合类型的数据方式是什么”,在日常操作中,相信很多人在Mybatis查找返回Map,List集合类型的数据方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-20
  • Java依赖注入的方式是什么
    这篇“Java依赖注入的方式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java依赖注入的方式是什么”文章吧。Spr...
    99+
    2023-07-02
  • Angular中依赖注入模式是什么
    这篇文章主要介绍Angular中依赖注入模式是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Angular 依赖注入模式依赖注入: Dependency Injection 简称 DI依赖注入模式要解决的问题开发...
    99+
    2023-06-14
  • Spring依赖注入的两种方式是什么
    今天小编给大家分享一下Spring依赖注入的两种方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、依赖注入方式思考...
    99+
    2023-07-02
  • android依赖注入的实现方式是什么
    Android中依赖注入的实现方式有以下几种:1. 构造函数注入:通过在类的构造函数中传入依赖对象的实例来实现注入。这种方式最为简单...
    99+
    2023-10-09
    android
  • Spring中接口注入的三种方式分别是什么
    本篇文章为大家展示了Spring中接口注入的三种方式分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring中 接口注入的三种方式,上面的代码中,ClassA依赖于Interf...
    99+
    2023-06-17
  • Java中List集合数据修改方式是什么
    这篇文章主要介绍“Java中List集合数据修改方式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中List集合数据修改方式是什么”文章能帮助大家解决问题。Java中List集合数据修...
    99+
    2023-07-05
  • Springboot中filter的原理与注册方法是什么
    今天小编给大家分享一下Springboot中filter的原理与注册方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-07-05
  • Spring Boot中单例类实现对象的注入方式是什么
    本篇内容介绍了“Spring Boot中单例类实现对象的注入方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Spring Boot ...
    99+
    2023-06-20
  • Spring成员对象注入的三种方式是什么
    本篇内容主要讲解“Spring成员对象注入的三种方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring成员对象注入的三种方式是什么”吧!当一个类运行需要调用一个成员对象,成员对象也...
    99+
    2023-06-29
  • Spring AOP中什么是半注解和全注解模式
    本篇文章为大家展示了Spring AOP中什么是半注解和全注解模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<bean id="logUtils" ...
    99+
    2023-06-14
  • react中引入css的方式是什么
    这篇“react中引入css的方式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react中引入css的方式是什么”文...
    99+
    2023-06-30
  • Java SpringAOP技术中注解方式是什么
    这篇文章主要为大家展示了“Java SpringAOP技术中注解方式是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java SpringAOP技术中注解方式是什么”这篇...
    99+
    2023-06-29
  • SpringBoot中JPA + AuditingEntityListener时区设置方式是什么
    这篇文章将为大家详细讲解有关SpringBoot中JPA + AuditingEntityListener时区设置方式是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。...
    99+
    2023-06-22
  • SpringBoot  AOP @Pointcut切入点表达式排除某些类方式是什么
    这篇文章主要介绍“SpringBoot  AOP @Pointcut切入点表达式排除某些类方式是什么”,在日常操作中,相信很多人在SpringBoot  AOP @Pointcut切入点表达式排除某些类方式是什么问题上存...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作