Jimmy小站
小明也有大梦想 — 蒋明/铭基于diamond修改配置,spring实时对象更新方案
2022-01-21 / 未分类 / 3293 次围观 / 3 次吐槽基于diamond修改配置,spring实时对象更新方案
spring容器中注入配置类
@Configuration
public class DiamondConfigBean {
@Bean
public XxxConfig xxxConfig(){
return new XxxConfig();
}
}
diamond更新hock
@DiamondListener(dataId = "xxxl-config", groupId = "app-name")
public class DiamondIndustryConfigListener implements DiamondDataCallback {
@Autowired
XxxConfig xxxConfig;
@Override
public void received(String data) {
try {
Properties properties = new Properties();
// diamond字符串转为 Properties(本质是个map, 继承自HashTable)
properties.load(new ByteArrayInputStream(data.getBytes()));
// 把properties的值注入到 bean对象里, 其他地方使用直接@Resource
// 前提是这个对象已经在容器中,此处也是从容器中取出并修改其值
new RelaxedDataBinder(xxxConfig).bind(new MutablePropertyValues(properties));
}catch (Exception e) {
throw new RuntimeException(e);
}
}
}
- 上一篇:管道化学清洗方案
- 下一篇:spring 可以指定配置默认值
Copyright © Jimmy小站 Allrights Reserved.备案号:桂ICP备 15005996
已有3位网友发表了看法:
发表评论