# YML 文件格式是 YAML(YAML Aint Markup Language)编写的文件格式,YAML 是一种直观的能够
# 被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持 YAML 库
# 的不同的编程语言程序导入,比如 C/C++、Ruby、Python、Java、C#、PHP等。YML 是以数据为核心的,
# 比传统的 XML 方式更加简洁。
# YML 文件的扩展名可以是 .yml,或者 .yaml。
一、yml 配置文件的语法:
1、配置普通数据:
2、配置对象数据:
3、配置 List 集合数据:List 中存放的是 普通字符串
4、配置 List 集合数据:List 中存放的是 对象
二、在代码中读取 yml 配置文件中的数据:有两种方式
1、使用 @value 注解方式:
优点:可以更加精确的去匹配对应的配置数据;
缺点:如果配置数据比较多,代码里就需要写很多个属性去接收;
1.1、读取配置的普通数据:
1.2、读取配置的对象数据:
1.3、读取配置的集合数据:上面配置集合数据的语法如下图:但是不知道怎么读取?
老师没讲,网上也没查到资料!!如果有谁知道的,麻烦告知一下,谢谢!!!
上面是我用 @Value 注解读取 List 配置的代码,但是一直报如下错误:
虽然用 @Value 注解不知道怎么读取 List 集合数据;
但是用下面的 @ConfigurationProperties 方法可以读取;
2、使用 @ConfigurationProperties 注解方式:
用法:@ConfigurationProperties(prefix = "配置对象数据的 key");
要读取的配置文件:
学习资料上老师的用法是下面这样的:
将 @ConfigurationProperties 注解直接用在 Controller 的类上,然后 prefix 的值为配置对象数据的 key,然后 Controller 中的属性和 配置对象数据的属性 一一对应,Controller 中的属性还要添加 getter/setter 方法,如下图所示:
但是,实际测试发现,@ConfigurationProperties 配置会报一个错误:
在网上查了一些资料,最终总结使用 @ConfigurationProperties 的方法为:
2.1、根据配置文件中的对象数据 创建一个对应的 JavaBean 对象:
2.2、创建好上面的 Bean 对象后,你可能会发现文件最上面有一个警告,如下图所示:
测试发现,这个警告并不影响程序的正常运行,不用管它也可以;
这个警告的意思是“在类路径下(classpath)没有找到 SpringBoot 的配置注释处理器”;
如果想消除这个警告,可以点击警告右边的 Open Documentation...,点击之后会自动用浏览器打开一个网址,如下所示:(我用的 2.2.2 版本的 Springboot 不能打开,换成 2.0.1 版本的 Springboot 就能够打开);把下面圈起来的部分添加到 pom.xml 中就可以了;
既然,不管有没有配置 @ConfigurationProperties 处理器,程序都能运行,那么为什么还要配置这个处理器呢?
因为,我们程序开发中有时候是先创建 JavaBean,然后再根据 Bean 中的属性去写配置文件;在没配置处理器的情况下,我们写配置都要自己一个一个写;但是如果我们配置了处理器,我们在写配置文件的时候就会自动弹出提示信息,如下所示:
2.3、上面创建的 Bean 对象已经能够读取配置文件中的数据了,下面创建一个 Controller,测试 Bean 对象读取的数据:
注意:上面创建的 JavaBean 对象,需要给属性添加 getter/setter 方法,比较麻烦,我们可以使用 lombok 插件,通过注解的方式,代替 getter/setter 方法;
通过 idea 工具下载 lombok 插件,然后在 pom.xml 中添加依赖:
修改 JavaBean 对象如下:
lombok 插件的常用注解: