基於springBoot配置文件properties和yml中數組的寫法
springBoot配置文件properties和yml數組寫法
這裡介紹一下springBoot中的兩種文件配置方式中數組的使用,也就是集合。
以下是我springBoot中使用的 application.properties 文件
其實很好理解,我的configs是一個集合,configs[0].appid代表我配置的第一個對象中的appid的值
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
這個是使用application.yml的方式,因為YAML 本身支持 list 類型,所以可以在 application.yml 文件中添加:
yml如果配置普通字符串
miniapp: configs: - appid: 111 secret: 222 token: 333 aesKey: 444 msgDataFormat: JSON - appid: 111 secret: 222 token: 333 aesKey: 444 msgDataFormat: JSON
這兩種方法你選擇哪種都可以
下面展示類代碼的寫法:
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 { private List<Config> configs; @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; } }
解釋:
@Data就是省略瞭get/set方法你可以直接刪掉寫成get/set
@ConfigurationProperties(prefix = "miniapp")
prefix 這個前綴一定要寫對
configs是集合的名字,要和配置表中的信息一致。這樣基本就可以瞭。
.properties和.yml的寫法區別
例如:redis配置的properties或yml文件,如下:
spring.redis.cluster.nodes[0]=192.168.0.1:6379 spring.redis.cluster.nodes[1]=192.168.0.2:6379
或
spring: redis: cluster: nodes: - 192.168.0.1:6379 - 192.168.0.2:6379
示例:2
environments: dev: url: http://dev.bar.com name: Developer Setup prod: url: http://foo.bar.com name: My Cool App
上面的YAML文檔會被轉化到下面的屬性中:
environments.dev.url=http://dev.bar.com environments.dev.name=Developer Setup environments.prod.url=http://foo.bar.com environments.prod.name=My Cool App
YAML列表被表示成使用[index]間接引用作為屬性keys的形式,例如下面的YAML:
my: servers: - dev.bar.com - foo.bar.com
將會轉化到下面的屬性中:
my.servers[0]=dev.bar.com my.servers[1]=foo.bar.com
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 關於springBoot yml文件的list讀取問題總結(親測)
- springboot+jwt+springSecurity微信小程序授權登錄問題
- Spring中@Value讀取properties作為map或list的操作
- 5分鐘搭建redis集群(redis5.0.5)
- Go 多環境下配置管理方案(多種方案)