配置类:
/**
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
@Data
@Component
@ConfigurationProperties(prefix = "wx.miniapp")
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;
}
}
application.yml
wx:
miniapp:
configs:
- appid: xxx #微信小程序的appid
secret: xxx #微信小程序的Secret
token: xxx #微信小程序消息服务器配置的token
aesKey: xxx #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
测试类输出:
@RunWith(SpringRunner.class)
@SpringBootTest
public class PropertiesTest {
@Autowired
private WxMaProperties properties;
@Test
public void getProperties() {
List<WxMaProperties.Config> configs = properties.getConfigs();
System.out.println(configs);
}
}
结果:
[WxMaProperties.Config(appid=xxx, secret=xxx, token=xxx, aesKey=xxx, msgDataFormat=JSON)]
application.properties写法:
wx.miniapp.configs[0].appid = xxx
wx.miniapp.configs[0].secret = xxx
wx.miniapp.configs[0].token = xxx
wx.miniapp.configs[0].aesKey = xxx
wx.miniapp.configs[0].msgDataFormat = JSON
测试类输出结果:
[WxMaProperties.Config(appid=xxx, secret=xxx, token=xxx, aesKey=xxx, msgDataFormat=JSON)]
解释:
application.yml里的 每一个 “-” 可以理解为一个对象。对象里有 appid、secret、 token、aesKey、msgDataFormat 这些属性。
这种写法在application.properties可以用[0] 来代替。我们知道,数组下标从0开始,因此,[数字]里的每一个数字就相当于application.yml里的一个 “-”。