yml文件常见的几种读取方式

yml文件常见的几种读取方式,第1张

最常见的两种

接下来要讲的几种case要用到如下的yml文件

application.yml

application1.yml

借助Spring提供的一个类,org.springframework.core.env.Environment, 它继承了PropertyResolver, 所以可以当作属性解析器使用

Spring提供了YamlPropertiesFactoryBean可以读取自定义配置yml文件,不再拘泥于application.yml及其激活的其他配置文件

存在问题: 那就是只有在这个接口的请求中能够取到这个属性的值,如果再写一个接口,不使用YamlPropertiesFactoryBean读取配置文件,即使之前的方法已经读取过这个yml文件一次了,第二个接口取到的仍然还是空值。

解决方式: 配合PropertySourcesPlaceholderConfigurer使用,它实现了BeanFactoryPostProcessor接口,也就是一个bean工厂后置处理器的实现,可以将配置文件的属性值加载到一个Properties文件中。使用方法如下:

除了使用YamlPropertiesFactoryBean将yml解析成Properties外,其实我们还可以使用YamlMapFactoryBean解析yml成为Map

使用snakeYml,需要引入依赖

使用方式:

使用jackson,需要引入依赖

使用jackson读取yml也非常简单,这里用到了常用的ObjectMapper,在创建ObjectMapper对象时指定使用YAML工厂,之后就可以简单的将yml映射到实体:

jackson还可以生成yml文件

YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。

demo:

首先解析出来的格式应该是这样的:

首先有一个yml文件,然后有这么个解析器,自己写一个对应yml的javabean。

上面的javabean是程序里面写好的,的的确确,如果写的是spring的话那这个bean应该就在哪个包里面了。

那么变量类型从bean类里面就能读取出来了,顺着yml往下读取,读出一行来然后就去bean里面找对应的行,一行一行往里面填。

如此而言还搞明白了另一件事:那就是yml的解析方式

yml里面的每一段或者没一句可能都对应了一个java写的实体类,最开始是那种碎片式的properties类,然后把yml里面的每一条都整理出来之后

那么多的碎片,一起送进工厂类里面去生产出需要的配置出来

从yml里面读取配置,然后封到一个Config里面去,然后把这个Config转化成Predicate

yml读取中文似乎出问题,如果写了中文是不是那个#的解析就出什么问题了,不能正确读取值了?

反正把IDEA的设置改了就行,改成utf-8的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8102941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存