目标:通过在配置文件Properties中的配置,在程序中注入 Map<String,Pojo> 的对象实例
1、ImeiConfig
public class ImeiConfig {
// sms.host
private String host;
// sms.api.id
private String apiId;
// sms.api.key
private String apiKey;
// sms.owner.id
private String ownerId;
public ImeiConfig() {}
public ImeiConfig(String host, String apiId, String apiKey, String ownerId) {
this.host = host;
this.apiId = apiId;
this.apiKey = apiKey;
this.ownerId = ownerId;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getApiId() {
return apiId;
}
public void setApiId(String apiId) {
this.apiId = apiId;
}
public String getApiKey() {
return apiKey;
}
public void setApiKey(String apiKey) {
this.apiKey = apiKey;
}
public String getOwnerId() {
return ownerId;
}
public void setOwnerId(String ownerId) {
this.ownerId = ownerId;
}
}
2、ImeiConfigMap
@Configuration
@ConfigurationProperties(prefix = "dev.imei")
public class ImeiConfigMap {
private Map<String, ImeiConfig> configMap;
public ImeiConfigMap () {}
public ImeiConfigMap (Map<String, ImeiConfig> configMap) {
this.configMap = configMap;
}
public Map<String, ImeiConfig> getConfigMap() {
return configMap;
}
public void setConfigMap(Map<String, ImeiConfig> configMap) {
this.configMap = configMap;
}
}
3、测试方法
@Autowired
ImeiConfigMap imeiConfigMap;
@RequestMapping(value = "/config")
public String config() {
String string = JSONObject.toJSONString(imeiConfigMap.getConfigMap());
return string;
}
4、配置文件
dev.imei.configMap[common].host=45654645654
dev.imei.configMap[common].apiId=45654645
dev.imei.configMap[common].apiKey=456456546
dev.imei.configMap[common].ownerId=45645645645645
dev.imei.configMap[product].host=45646546456456
dev.imei.configMap[product].apiId=4234234234
dev.imei.configMap[product].apiKey=423432423
dev.imei.configMap[product].ownerId=234324324