百科狗-知识改变命运!
--

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

百变鹏仔1年前 (2023-12-17)阅读数 8#综合百科
文章标签配置文件文件

最常见的两种

接下来要讲的几种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文件

SpringBoot的配置文件有哪几种格式?

SpringBoot不需要添加复杂的web.xml或者spring.xml等配置文件,spring只有一个配置文件,也非必须的。

默认的配置文件是application.properties。

#修改端口号

server.port=8888

#定义项目的访问目录

server.context-path=/springboot

我们使用IDEA需要注意,图就不截图太麻烦了:

如果properties文件中出现乱码,找到setting中,在file encoding中勾选Transparent native-to-asci conversion。

YAML文件

除了默认的properties文件,SpringBoot还提供另外一种配置文件yml,这种文件提供一种更加简洁的方式编写配置信息。

yml是YAML(YAML Ain‘t Markup Language)语言的文件,是一种标记语言,以数据为中心,比json、xml等更适合做配置文件,有想法的可以去网上搜搜资料学习下。

参考语法规范:

官方参考: http://www.yaml.org

yml学习参考:https://www.yiibai.com/yaml/yaml_syntax_primitives.html

YAML基本语法:

以键值对的方式表示属性。(空格必须有)。

使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格。

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。

属性和值是大小写敏感的。

例子:

server:

port: 8081

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

servlet:

context-path: springboot

注意::后必须跟一个空格,两种方式推荐使用yml方式配置项目。

YAML语法

YAML支持的三种数据结构。

字面量:普通的值。(数字,字符串,布尔)

对象:键值对的集合。(Map)

数组:一组按次序排列的值。(List,Set)

字面量

YAML中字面量属于普通的值。以key: value来表示,value前必须带一个空格。

字面量,字符串默认不需要单双引号。

双引号:会转义字符,特殊字符会被转义。(name: "SimpleWu lisi" //输出:SimpleWu换行 lisi)

单引号:不会转义字符,特殊字符不会被转义。(name: 'SimpleWu lisi' //输出:SimpleWu lisi)

server:

port: 8081

对象、Map

在YAML中,对象和Map都是以键值对的方式表示。在下一行来编写属性和值得关系,注意缩进。

users:

firstName: SimpleWu

email: lovelyWu98k@gmail.com

对象还有另一种写法,看到这种写法是不是想到了JSON?

users: {

firstName: zhangsan,

email: lovelyWu98k@gmail.com

}

数组

用-值得方式来表示数组中的一个元素。

users:

- SimpleWu

- lovelyWu98k@gmail.com

- addressisnot

另外一种写法,还是像JSON

users: [SimpleWu,lovelyWu98k@gmail.com,addressisnot]

SpringBoot中的配置文件主要有三种格式,properties、yaml、和xml方式。

- 其中properties格式配置文件后缀是.properties,配置项为:server.port = 9090

- yaml格式配置文件后缀是.yml,配置项是:server.port: 9090

在SpringBoot中,使用最广泛的配置文件是yaml,yaml之所以流行,除了他配置语法精简之外,还因为yaml是一个跨编程语言的配置文件。

在SpringBoot中,除了yaml之外,properties也比较常用,但是XML几乎不用,看得出来Spring团队非常痛恨XML配置文件!认为它不是一个好的语言。

如果你对常见的配置文件有哪几种格式不熟悉,就去黑马程序员官网视频库看免费视频。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)