美文网首页
Spring Boot 配置中心配置自动刷新后触发其他初始化操作

Spring Boot 配置中心配置自动刷新后触发其他初始化操作

作者: zornil | 来源:发表于2020-12-30 21:40 被阅读0次

    需求背景:通过nacos配置中心获取对应的配置信息,然后通过bean的方式注入属性值,其中部分属性值需要根据配置中的类型进行转换,达到直接获取通过处理后的属性值的目的。

    如图所示:其中rules是在配置中心获取的,grayRuleInfos是需要提供给其他服务使用的,需要将rules转换成grayRuleInfos这个List对象。

    目前可以通过三种方式实现

    1、通过重写set方法,在自动初始化bean注入rules的时候完成grayRuleInfos的初始化(不够友好)。

    2、通过EventListener监听下发的配置修改事件,然后修改对应的grayRuleInfos初始化(获取到的是上一次rules的值)

    @EventListener

    public void envChangeListener(EnvironmentChangeEvent event) {}

    3、通过@PostConstruct,比较优雅的实现grayRuleInfos的初始化。

    主要是因为在该bean上加了@RefreshScope,每次配置变更都是销毁原来的bean,然后重新将bean初始化(注意这里是延迟加载,只有在使用的时候才会触发PostConstruct对应的操作)。

    相关文章

      网友评论

          本文标题:Spring Boot 配置中心配置自动刷新后触发其他初始化操作

          本文链接:https://www.haomeiwen.com/subject/birjrktx.html