前言:Spring-boot的yml配置文件,这里就不在借助人、狗介绍了,试试套下微信!
创建yml文件
- 值得注意的是下图中有三种命名方法,前两种是对的,且第二种必须是横线而不是下划线!
- yml文件的基本语法:由键值对和空格组成
- 值得注意的是:作为yml的固定格式,如wxmessage、contacts这样的键后面,都需要加一个空格
weixin:
wxmessage: message
contacts: friends
discover: find_list
me: owner_message
- yml的Map写法:一般情况下好友列表都会有ID,对应的昵称,头像地址,我们这里拿不到id,
则可以将好友列表当做Map
- 这里需要注意的是再使用IDEA 编辑配置文件的时候,如果发现配置文件的编辑项显示异常,
比如:contacts :{image_qiankui: “百人钱坤”, image_qianmo: “百人阡陌”*},
那么很有可能是配置文件的类型和实际映射的实体类型不一致,即:在java文件里定义了
一个属性:private Contacts contacts,实体却定义成Map类型,就会出错或者值为null
weixin:
contacts :{
image_qiankui: "百人钱坤",image_qianmo: "百人阡陌",}
- yml的 数组写法:微信的发现表面看很明显是一个List
# 第一种数组写法
find-list: [moments,Scan QR Code,Shake]
# 第二种数组写法
find-list:
- moments
- Scan QR Code
- Shake
- yml的对象写法:“我”模块中包含着用户的昵称、头像、支付、相册等,可以当做一个对象来处理。
me:
wxNickName: .
wxId: miao90***
wxPay: payAdress
- 配置文件相关的两个注解:
//将对象注入到容器内
@Component
//标注在类名上表示该类对应配置文件的“weixin”
@ConfigurationProperties(prefix = “weixin”)
总结: 以上四种yml的常用写法,除第一种很少能用上之外,其他的三种看似简单,但经常会因为空格层级关系不明确、实体类型映射不匹配等问题导致项目运行不成功!
附:测试相关代码
package com.wujianqinjian.springboot_note.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util