配置文件配置Map及List

介绍一下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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值