这里写目录标题
yaml学习
yaml
语言的文件后缀名为.yml
,和 json 一样是配置文件。
编码规则
- 大小写敏感
- 使用缩进表示层级关系
- 禁止使用tab缩进,只能使用空格键
- 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
- 使用#表示注释
- 字符串可以不用引号标注
- 双引号””:不会转义字符串里面的特殊字符,特殊字符作为本身想表示的意思。
- 单引号’’:会将字符串里面的特殊字符转义为字符串处理
- |:使用|标注的文本内容缩进表示的块,可以保留块中已有的回车换行
- +表示保留文字块末尾的换行,-表示删除字符串末尾的换行。
- >:使用 > 标注的文本内容缩进表示的块,将块中回车替换为空格,最终连接成一行。
- 使用 & 定义数据锚点(即要复制的数据),使用 * 引用锚点数据(即数据的复制目的地)
- 使用 iso-8601 标准表示日期
date: 2018-01-01t16:59:43.10-05:00
数据结构
配置文件十分简洁,与 json 相比,不用频繁的写 {}
和 []
,毕竟换行
和 -
符号更加简洁,字符串也不需要频繁的加引号(无论是单引号还是双引号)。
对象
#application.yml
animal: dogs
homeAddress:
province: 安徽省
city: 阜阳市
county: 利辛县
detail: 东南路1000000000号
转换为 json 为:
{
"animal": "dogs",
"homeAddress": {
"province": "安徽省",
"city": "阜阳市",
"county": "利辛县",
"detail": "东南路1000000000号"
}
}
数组
#application.yml
animals:
- dogs
- cats
- pigs
- ducks
转换为 json 为:
{
"animals": [
"dogs",
"cats",
"pigs",
"ducks"
]
}
字符串
#application.yml
# 正常情况下字符串不用写引号
spring:
datasource:
username: root
password: root
# 字符串内有空格或者特殊字符时需要加引号
spring:
datasource:
url: "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false"
null
#application.yml
#.yml 中 ~ 表示 null
data: ~
转换为 json 为:
{
"data": null
}
SpringBoot配置yaml
我们学习了yaml的语法规则,希望在spring boot项目中能够提示读取配置文件。
引入依赖
<!--SpringBoot的application配置组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
添加注解
WxConfig.java
package com.example.demo.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* @author zby
* @datetime 2022/7/27 17:23
* @desc 配置微信配置信息
*/
@ConfigurationProperties(prefix = "wx")
@Data
public class WxConfig {
private String appId;
private String appKey;
private String secret;
}
DemoApplication .java
编写WxConfig .java
之后,需要在启动程序【DemoApplication .java】
中引入该类,否则编辑器会报出错误。
package com.example.demo;
import com.example.demo.demo.config.WxConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@SpringBootApplication
@EnableConfigurationProperties(WxConfig.class)
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
配置文件已有提示
使用配置
package com.example.demo.demo;
import com.example.demo.demo.config.WxConfig;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
@Autowired private WxConfig wxConfig;
@Test
void contextLoads() {
System.out.println(wxConfig);
}
}
输出结果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99197.html