Jimmy小站

小明也有大梦想 — 蒋明/铭
当前位置:网站首页 / 未分类 / 正文

基于diamond修改配置,spring实时对象更新方案

2022-01-21 / 未分类 / 541 次围观 / 0 次吐槽

基于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);
        }
    }
}

推荐您阅读更多有关于“diamond动态配置,”的文章

[一个Java程序猿的转型之路,读研深造,专注机器学习推荐算法]
本站所有文章如无特别注明均为原创。作者:吉米酱 ,复制或转载请以超链接形式注明转自 Jimmy小站
原文地址《基于diamond修改配置,spring实时对象更新方案
额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright © Jimmy小站 Allrights Reserved.备案号:桂ICP备 15005996