Springboot2(二)通过微信熟悉熟悉Spring-boot yml配置文件
前言: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: "百人阡陌",}
- 这里需要注意的是再使用IDEA 编辑配置文件的时候,如果发现配置文件的编辑项显示异常,
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.Map;
@Component
@ConfigurationProperties(prefix = "weixin")
public class Weixin {
private List<String> message;
private Map<String,String> contacts;
private List<String> findList;
private Me me;
@Override
public String toString() {
return "Weixin{" +
"message=" + message +
", contacts=" + contacts +
", findList=" + findList +
", me=" + me +
'}';
}
public List<String> getMessage() {
return message;
}
public void setMessage(List<String> message) {
this.message = message;
}
public Map<String, String> getContacts() {
return contacts;
}
public void setContacts(Map<String, String> contacts) {
this.contacts = contacts;
}
public List<String> getFindList() {
return findList;
}
public void setFindList(List<String> findList) {
this.findList = findList;
}
public Me getMe() {
return me;
}
public void setMe(Me me) {
this.me = me;
}
}
package com.wujianqinjian.springboot_note.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "contacts")
public class Contacts {
private String imageUrl;
private String nickName;
@Override
public String toString() {
return "Contacts{" +
"imageUrl='" + imageUrl + '\'' +
", nickName='" + nickName + '\'' +
'}';
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
}
package com.wujianqinjian.springboot_note.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "me")
public class Me {
private String wxNickName;
private String wxId;
private String wxPay;
private String wxCollect;
private String wxPhoto;
private String wxCards;
private String wxExpression;
@Override
public String toString() {
return "Me{" +
"wxNickName='" + wxNickName + '\'' +
", wxId='" + wxId + '\'' +
", wxPay='" + wxPay + '\'' +
", wxCollect='" + wxCollect + '\'' +
", wxPhoto='" + wxPhoto + '\'' +
", wxCards='" + wxCards + '\'' +
", wxExpression='" + wxExpression + '\'' +
'}';
}
public String getWxNickName() {
return wxNickName;
}
public void setWxNickName(String wxNickName) {
this.wxNickName = wxNickName;
}
public String getWxId() {
return wxId;
}
public void setWxId(String wxId) {
this.wxId = wxId;
}
public String getWxPay() {
return wxPay;
}
public void setWxPay(String wxPay) {
this.wxPay = wxPay;
}
public String getWxCollect() {
return wxCollect;
}
public void setWxCollect(String wxCollect) {
this.wxCollect = wxCollect;
}
public String getWxPhoto() {
return wxPhoto;
}
public void setWxPhoto(String wxPhoto) {
this.wxPhoto = wxPhoto;
}
public String getWxCards() {
return wxCards;
}
public void setWxCards(String wxCards) {
this.wxCards = wxCards;
}
public String getWxExpression() {
return wxExpression;
}
public void setWxExpression(String wxExpression) {
this.wxExpression = wxExpression;
}
}
Springboot2(二)通过微信熟悉熟悉Spring-boot yml配置文件的更多相关文章
- Spring Boot 的配置文件application.properties
Spring Boot 中的application.properties 是一个全局的配置文件,放在src/main/resources 目录下或者类路径的/config下. 作为全局配置文件的app ...
- Spring Boot之配置文件值注入(@ConfigurationProperties)
前言:Spring Boot配置文件值的注入有两种方式,分别是 @ConfigurationProperties @Value 这里我们使用第一种 首先我们创建一个application.yml文件, ...
- Spring Boot属性配置文件:application.properties 详解
学习资料 网址 官方说明文档 https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-pro ...
- 一:Spring Boot 的配置文件 application.properties
Spring Boot 的配置文件 application.properties 1.位置问题 2.普通的属性注入 3.类型安全的属性注入 1.位置问题 当我们创建一个 Spring Boot 工程时 ...
- Spring Boot 核心配置文件 bootstrap & application
Spring Boot 核心配置文件 bootstrap & application 1.SpringBoot bootstrap配置文件不生效问题 2.bootstrap/ applicat ...
- 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件 内容简介:本文介绍 Spring Boot 的配置文件和配置管理,以及介绍了三种读取配置文 ...
- spring boot全局配置文件优先级
前两篇介绍的application配置文件,即为spring boot全局配置文件.那么spring boot加载配置文件的时候,怎么确定加载哪个目录下哪个文件呢? spring boot默认的配置文 ...
- spring boot:用zxing生成二维码,支持logo(spring boot 2.3.2)
一,zxing是什么? 1,zxing的用途 如果我们做二维码的生成和扫描,通常会用到zxing这个库, ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. zxing还可以 ...
- Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用
该篇为Spring Boot入门到实战系列入门篇的第二篇.介绍创建Spring Boot应用的几种方法. Spring Boot应用可以通过如下三种方法创建: 通过 https://start.spr ...
随机推荐
- vue基础----自定义组件directive ,bind,update,insert
<div id="app"> <input type="text" v-limit.3="msg" v-focus> ...
- js 模拟滚动条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Python离线项目迁移部署
最近遇到了一个场景:需要将Python项目文件打包到无法联网的主机上部署执行,本篇文章记录针对于该场景的处理方案. 说明: 源主机(可联网):安装了Python3和pip3 目标主机(无法联网):需安 ...
- 如何使用Logstash
目录 一.什么是Logstash 二.如何安装 三.快速使用 四.Input输入插件 五.codec编码插件 六.filter过滤器插件 七.output输出插件 八.总结 一.什么是Logstash ...
- ssh 公钥 下载选择的时候 下拉选择 ssh 然后 git clone
ssh 公钥 下载选择的时候 下拉选择 ssh 然后 git clone
- Python习题集(十三)
每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 写一个函数,该函数 ...
- 【Weiss】简单说一下这一分类下的东西
主要是学习资料<数据结构与算法分析>(Weiss)的习题 除去习题外,每一章主要用到的数据结构先会写一个版本放上来,包括数据结构代码与测试用代码 这种先行上传的代码只具有基本的功能,毕竟一 ...
- docker系列详解<一>之docker安装
1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 $ ...
- Journal of Proteome Research | Improving Silkworm Genome Annotation Using a Proteogenomics Approach (分享人:张霞)
题目:Improving Silkworm Genome Annotation Using a Proteogenomics Approach 期刊:Journal of Proteome Resea ...
- Python3 整数
imag定义:返回整数的复数形式的虚部(返回整数).格式:intobject.imag real定义:返回整数的复数形式的实部(返回整数).格式:intobject.real conjugate()定 ...