介绍一下springBoot中的两种文件配置方式中数组的使用,也就是集合
使用application.properties文件
#list<引用数据类型>
miniapp.configs[0].appid = 111111
miniapp.configs[0].secret= 222222
miniapp.configs[0].token = 333333
miniapp.configs[0].aesKey = 444444
miniapp.configs[0].msgDataFormat = JSON
miniapp.configs[1].appid = 111
miniapp.configs[1].secret = 222
miniapp.configs[1].token = 333
miniapp.configs[1].aesKey = 444
miniapp.configs[1].msgDataFormat = JSON
#list<基本数据类型> 第一种方式
data.list[0]=apple0
data.list[1]=apple1
data.list[2]=apple2
#list 第二种方式
data.list=apple0,apple1,apple2
使用application.yml文件
miniapp:
configs:
- appid: 111
secret: 222
token: 333
aesKey: 444
msgDataFormat: JSON
- appid: 111
secret: 222
token: 333
aesKey: 444
msgDataFormat: JSON
java代码
package com.platform.miniprogram;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Classname WxMaProperties
* @Description TODO
* @Date 2020/10/10 10:48
* @Created by lyc
*/
@Data
@ConfigurationProperties(prefix = "miniapp")
@Component
public class WxMaProperties {
/**
* data.person.name
* 这里map名需要和application.properties中的参数一致*/
private Map<String, String> person = new HashMap<>()
/**
* data.list
* 这里list名需要和application.properties中的参数一致
*/
private List<Config> configs;
private List<String> list;
@Data
public static class Config {
/**
* 设置微信小程序的appid
*/
private String appid;
/**
* 设置微信小程序的Secret
*/
private String secret;
/**
* 设置微信小程序消息服务器配置的token
*/
private String token;
/**
* 设置微信小程序消息服务器配置的EncodingAESKey
*/
private String aesKey;
/**
* 消息格式,XML或者JSON
*/
private String msgDataFormat;
}
}
properties优先级会高一些,相同名称的配置,会将yml内的配置覆盖掉。
. project-sample
├── config
│ ├── application.yml (4)
│ └── src/main/resources
| │ ├── application.yml (1)
| │ └── config
| | │ ├── application.yml (2)
├── application.yml (3)
程序启动时先加载1->2->3->4
优先读取properties文件,如果properties文件中没有再去读yml文件
通过上面的配置可知,一般的单个的值是使用field:value的形式配置的,而List类型的值则是使用多个-value进行配置的,而Map类型的值,则是使用field : key : value进行配置的,可以配置多个key:value
@Configuration
@ConfigurationProperties(prefix = "microservice.objectyaml")
public class ObjectYamlConfig {
private ConfigPojo configPojo;
private List<ConfigPojo> list;
private Map<String,ConfigPojo> map;
//getter settter方法省略
}
public class ConfigPojo {
private String strVaule;
private int intValue;
private float floatValue;
private boolean booleanValue;
private List<String> listStrValue;
private Map<String, String> mapStrValue;
//getter settter方法省略
}
使用application.yml文件
microservice:
objectyaml:
configPojo:
strVaule: strVaule
intValue: 10
floatValue: 8.5
booleanValue: false
listStrValue:
-a
-b
-c
-d
mapStrValue:
name: pharos
age: 25
list:
-
strVaule: strVaule
intValue: 10
floatValue: 8.5
booleanValue: false
listStrValue:
-a
-b
-c
-d
mapStrValue:
name: pharos
age: 25
-
strVaule: strVaule
intValue: 10
floatValue: 8.5
booleanValue: false
listStrValue:
-a
-b
-c
-d
mapStrValue:
name: pharos
age: 25
map:
a:
strVaule: strVaule
intValue: 10
floatValue: 8.5
booleanValue: false
listStrValue:
-a
-b
-c
-d
mapStrValue:
name: pharos
age: 25
b:
strVaule: strVaule
intValue: 10
floatValue: 8.5
booleanValue: false
listStrValue:
-a
-b
-c
-d
mapStrValue:
name: pharos
age: 25