×

.yml是什么文件

前端技术网 前端技术网 发表于2023-12-06 17:57:14 浏览3947 评论0

抢沙发发表评论

一、yml文件应该用什么打开

YML(或YAML)文件是一种结构化的数据文件格式,常用于配置文件、数据序列化和交换等场景。你可以使用文本编辑器或特定的YAML编辑器来打开和编辑YML文件。

以下是几种常见的方法来打开YML文件:

.yml是什么文件

1、文本编辑器:使用文本编辑器(如Notepad、Notepad++、Sublime Text、Atom、VS Code等)打开YML文件。右键点击文件,选择打开方式,然后选择你喜欢的文本编辑器。

2、YAML编辑器:有一些专门的YAML编辑器可以提供更好的YAML文件编辑体验。一些流行的YAML编辑器包括YAML Pad、Visual Studio Code(使用YAML扩展插件)、IntelliJ IDEA(使用YAML/Ansible插件)等。

3、在线YAML编辑器:还有一些在线工具可用于在浏览器中打开和编辑YML文件。例如,你可以尝试使用在线YAML编辑器(如YAML Validator、YAML Lint等),将YML文件的内容**粘贴到在线编辑器中进行编辑和验证。

不管你选择哪种方式,打开YML文件后,你可以查看和编辑其中的内容。YML文件使用缩进和冒号的方式表示数据结构,所以在编辑时要注意保持正确的缩进和语法结构。

打开YML文件并编辑后,保存更改并确保文件扩展名为.yml或.yaml,以便保持正确的文件格式。

二、yml解析方式

demo:

.yml是什么文件

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

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

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

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

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

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

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

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

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

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

三、yml 文件中使用环境变量

Spring Boot中可以用 spring.profiles.active参数来指定系统环境,让系统加载不同的配置文件。

可以在程序启动的时候加上参数来指定需要的配置

当然我们也可以事先设置好系统的环境变量

然后在 yml文件中用 active:${SERVER_EVN}来动态的获取系统已设置好的数据。这样这台 test服务器中的再启动 Spring Boot项目的时候就可以不用每次都去设置参数了。

同时 yml也支持${SERVER_EVN:dev}这样的方式来设置默认值,此时如果环境变量中没有 SERVER_EVN, active就会默认设置为"dev"。

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

最常见的两种

接下来要讲的几种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是什么文件的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。