在spring boot中,读取配置文件(application.yml)中各种不同类型的属性值:

1、引入依赖:

<!-- 支持 @ConfigurationProperties 注解 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>

2、配置文件(application.yml)中配置各个属性的值:

myProps: #自定义的属性和值 simpleProp: simplePropValue arrayProps: 1,2,3,4,5 listProp1: name: abc value: abcValue name: efg value: efgValue listProp2: config2Value1 config2Vavlue2 mapProps: key1: value1 key2: value2

3、创建一个bean来接收配置信息:

@Component
@ConfigurationProperties(prefix="myProps") //接收application.yml中的myProps下面的属性
public class MyProps { private String simpleProp; private String[] arrayProps; private List<Map<String, String>> listProp1 = new ArrayList<>(); //接收prop1里面的属性值 private List<String> listProp2 = new ArrayList<>(); //接收prop2里面的属性值 private Map<String, String> mapProps = new HashMap<>(); //接收prop1里面的属性值 public String getSimpleProp() { return simpleProp; } //String类型的一定需要setter来接收属性值;maps, collections, 和 arrays 不需要 public void setSimpleProp(String simpleProp) { this.simpleProp = simpleProp; } public List<Map<String, String>> getListProp1() { return listProp1; } public List<String> getListProp2() { return listProp2; } public String[] getArrayProps() { return arrayProps; } public void setArrayProps(String[] arrayProps) { this.arrayProps = arrayProps; } public Map<String, String> getMapProps() { return mapProps; } public void setMapProps(Map<String, String> mapProps) { this.mapProps = mapProps; }
}

启动后,这个bean里面的属性就会自动接收配置的值了。

4、单元测试用例:

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {@Autowiredprivate MyProps myProps; @Testpublic void contextLoads() {}@Testpublic void propsTest() throws JsonProcessingException { System.out.println("simpleProp: " + myProps.getSimpleProp()); System.out.println("arrayProps: " + objectMapper.writeValueAsString(myProps.getArrayProps())); System.out.println("listProp1: " + objectMapper.writeValueAsString(myProps.getListProp1())); System.out.println("listProp2: " + objectMapper.writeValueAsString(myProps.getListProp2())); System.out.println("mapProps: " + objectMapper.writeValueAsString(myProps.getMapProps())); }}

5、测试结果:

simpleProp: simplePropValue
arrayProps: ["1","2","3","4","5"]
listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}]
listProp2: ["config2Value1","config2Vavlue2"]
mapProps: {"key1":"value1","key2":"value2"}

要是还有不太明白的地方请留言,评论必回
要是对我的文章感兴趣的话,关注一下吧,谢谢!

上一篇:JAVA实时监控目录下文件的变化

下一篇:如何配置log4j

如何读取yml文件内容相关推荐

  1. 读取CSV文件内容,将其转换成JSON字符串输出

    CsvToJsonUtil 工具类作用:读取CSV文件内容,将其转换成JSON字符串输出 转换工具类代码如下: package com.test.util;import java.io.*; impo ...

  2. java中读取properties文件内容五种方式

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

  3. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  4. python中读取文件内容-深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  5. python读取整个txt文件-python怎么读取txt文件内容

    读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello python! h ...

  6. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  7. dom4j读取XML文件内容

    转载自  dom4j读取XML文件内容 <?xml version="1.0" encoding="UTF-8"?> <RESULT> ...

  8. python怎么读取pdf文件_Python解析并读取PDF文件内容的方法

    本文实例讲述了Python解析并读取PDF文件内容的方法.分享给大家供大家参考,具体如下: 一.问题描述 利用python,去读取pdf文本内容. 二.效果 三.运行环境 python2.7 四.需要 ...

  9. 五种方式让你在java中读取properties文件内容不再是难题

    2019独角兽企业重金招聘Python工程师标准>>> 方式1.通过context:property-placeholder加载配置文件jdbc.properties中的内容 < ...

  10. python 保存pdf文件_PyPDF2读取PDF文件内容保存到本地TXT实例

    我就废话不多说了,大家还是直接看代码吧! from PyPDF2.pdf import PdfFileReader import pandas as pd def Pdf_to_txt(pdf): f ...

最新文章

  1. 【我看Hibernate】Hibernate 介绍及其简单应用
  2. 基本类型和操作之富包装器
  3. pytorch 多GPU训练
  4. Fedora 15 16 17 18 20无线网卡驱动安装
  5. 编译安装C源码程序程序
  6. Vue compile - Vue中的双大括号 {{ 是如何被解析(parse)的
  7. 混合音乐推荐系统_比女朋友更懂你的“音乐推荐系统”,是怎样搭建出来的?...
  8. 伺服怎么接单相220伏_乐利网带你认识伺服电机及工作原理
  9. mysql 循环体 如何测试_mysql里如何循环插入数据,进行测试
  10. ups计算软件_浅析UPS与蓄电池与逆变器的区别
  11. (软件工程复习核心重点)第十章面向对象设计-第二节:启发规则和软件重用
  12. 5.1傅里叶展开,傅里叶级数推导--非常棒
  13. pe如何自动加载外置工具_winpe无法加载外置程序解决方法
  14. 零基础必看的Html5+Css3+移动端前端教程(四)
  15. 通过精益售后服务提升企业竞争力
  16. python实现pdf阅读器_PyQt5 从零开始制作 PDF 阅读器(一)
  17. 抓取日志的小工具(命令)Adb logcat
  18. mysql网站倒计时代码_最简单的一个网页倒计时代码 时间到期后会显示出提醒内容 收藏版...
  19. 推荐一个可能是最全的Venn图一站式绘制工具
  20. SpringBoot系列课程(二)-SpringBoot整合MyBatis

热门文章

  1. Android PackageInstaller:安装应用的应用,从三流Android外包到秒杀阿里P7
  2. 索引缓存_如何重置您的Google桌面索引缓存
  3. 锐捷EG易网关与NBR路由器命令执行漏洞-2
  4. Linux指纹识别相关配置
  5. 脚本精灵服务器引擎数据为空,脚本精灵服务器
  6. 发力“创新宇宙”,酒店集团如何破局商业革新?
  7. HTML5前端开发实战01-学生信息表
  8. Serializer及ModelSerializer的使用
  9. 恢复Windows默认文件资源管理器(Files设置后,恢复亲测可用)
  10. 一次函数的斜率公式_一次函数斜率公式是什么?