假设要搞一个2级map: type -> level -> score
先看配置:
xxxx.old.type2Level2ScoreMap:
type_1.level2ScoreMap.level_1: 1
type_1.level2ScoreMap.level_2: 2
type_2.level2ScoreMap.level_1: 1
type_3.level2ScoreMap.level_1: 1
xxxx.old.type2Level2ScoreMap:
type_1.level2ScoreMap.level_1: 1
type_1.level2ScoreMap.level_2: 2
type_2.level2ScoreMap.level_1: 1
type_3.level2ScoreMap.level_1: 1
xxxx.old.type2Level2ScoreMap: type_1.level2ScoreMap.level_1: 1 type_1.level2ScoreMap.level_2: 2 type_2.level2ScoreMap.level_1: 1 type_3.level2ScoreMap.level_1: 1
首先搞定2个数据结构,注意一定要字段名对应,层级对应:
public class Type2Level2Score {
private Map<String, Level2Score> type2Level2ScoreMap;
public Map<String, Level2Score> getType2Level2ScoreMap() {
return type2Level2ScoreMap;
}
public void setType2Level2ScoreMap(Map<String, Level2Score> type2Level2ScoreMap) {
this.type2Level2ScoreMap = type2Level2ScoreMap;
}
}
public class Type2Level2Score {
private Map<String, Level2Score> type2Level2ScoreMap;
public Map<String, Level2Score> getType2Level2ScoreMap() {
return type2Level2ScoreMap;
}
public void setType2Level2ScoreMap(Map<String, Level2Score> type2Level2ScoreMap) {
this.type2Level2ScoreMap = type2Level2ScoreMap;
}
}
public class Type2Level2Score { private Map<String, Level2Score> type2Level2ScoreMap; public Map<String, Level2Score> getType2Level2ScoreMap() { return type2Level2ScoreMap; } public void setType2Level2ScoreMap(Map<String, Level2Score> type2Level2ScoreMap) { this.type2Level2ScoreMap = type2Level2ScoreMap; } }
public class Level2Score {
private Map<String, Integer> level2ScoreMap;
public Map<String, Integer> getLevel2ScoreMap() {
return level2ScoreMap;
}
public void setLevel2ScoreMap(Map<String, Integer> level2ScoreMap) {
this.level2ScoreMap = level2ScoreMap;
}
}
public class Level2Score {
private Map<String, Integer> level2ScoreMap;
public Map<String, Integer> getLevel2ScoreMap() {
return level2ScoreMap;
}
public void setLevel2ScoreMap(Map<String, Integer> level2ScoreMap) {
this.level2ScoreMap = level2ScoreMap;
}
}
public class Level2Score { private Map<String, Integer> level2ScoreMap; public Map<String, Integer> getLevel2ScoreMap() { return level2ScoreMap; } public void setLevel2ScoreMap(Map<String, Integer> level2ScoreMap) { this.level2ScoreMap = level2ScoreMap; } }
然后是配置
@Configuration
public class Type2Level2ScoreConfiguration {
@Bean
@ConfigurationProperties(prefix = "xxxx.old")
public Type2Level2Score oldConfig() {
return new Type2Level2Score();
}
}
@Configuration
public class Type2Level2ScoreConfiguration {
@Bean
@ConfigurationProperties(prefix = "xxxx.old")
public Type2Level2Score oldConfig() {
return new Type2Level2Score();
}
}
@Configuration public class Type2Level2ScoreConfiguration { @Bean @ConfigurationProperties(prefix = "xxxx.old") public Type2Level2Score oldConfig() { return new Type2Level2Score(); } }
在需要的地方,直接使用即可
@Autowired
@Qualifier("oldConfig")
private Type2Level2Score oldConfig;
@Autowired
@Qualifier("oldConfig")
private Type2Level2Score oldConfig;
@Autowired @Qualifier("oldConfig") private Type2Level2Score oldConfig;