为什么突然写这样一篇文章呐,因为作者在看项目的时候发现老代码中的多数据源用的很六,而多数据的配置基础配置信息存储在Map数据结构中,也就是本次文章的标题。在看代码中,作者觉的人家这种想法非常好,尤其像多数据源,或者相同相同类,不同的配置值具有不同功能的情况。我们可以通过不同的名称将我们实例化的bean注入到springIoc容器中,这样就极大的方便了我们代码的扩展,也让我们的配置文件更加具有层次性。优点就说这么多,以后有时间了再利用这种姿势给大家演示一下如何做同类的不同实现的管理和包装。这里通过demo来演示一下SpringBoot如何注入一个Map<String,Bean>.
public class MyBean {
private String name;
private String config;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getConfig() {
return config;
}
public void setConfig(String config) {
this.config = config;
}
@Override
public String toString() {
return "MyBean{" +
"name='" + name + '\'' +
", config='" + config + '\'' +
'}';
}
}
配置管理
@Configuration
@ConfigurationProperties(prefix = "scaffold.tian")
public class MyConfig {
private Map, MyBean> client;
public MyConfig() {
}
public Map, MyBean> getClient() {
return client;
}
public void setClient(Map, MyBean> client) {
this.client = client;
}
@Override
public String toString() {
return "MyConfig{" +
"client=" + client +
'}';
}
}
配置文件
scaffold.tian.client.name.config=tianjingle
scaffold.tian.client.wang.config=wang
scaffold.tian.client.li.config=li
测试代码
@Autowired
private MyConfig myConfig;
System.out.println(myConfig.toString());
测试结果
当我们将需要的基础信息配置管理起来了之后,我们就可以随意的生产不同策略的上层业务类了。是不是感觉这种姿势优点帅?好了,本次文章就到这里!
文章首页图片来自:搜狗百科-周冬雨 https://baike.sogou.com/v39745781.htm
晚安~