已刷新环境中的配置,但不在@ConfigurationProperty Bean中
我有一个bean正在收听已刷新环境中的配置,但不在@ConfigurationProperty Bean中,configuration,spring-boot,spring-cloud,Configuration,Spring Boot,Spring Cloud,我有一个bean正在收听ApplicationEvent 同一个bean还引用了一个属性bean,比如SysConfig(具有@ConfigurationProperties的bean实例) 我发出一个刷新端点(/refresh)的调用 在ApplicationEvent(EnvironmentChangeEvent evt)中期望刷新/重新索引的SysConfig bean正确吗 我没有在事件处理方法中获得刷新/重新索引的属性bean。但是Environment.getProperty()反映
ApplicationEvent
同一个bean还引用了一个属性bean,比如SysConfig(具有@ConfigurationProperties
的bean实例)
我发出一个刷新端点(/refresh)的调用
在ApplicationEvent(EnvironmentChangeEvent evt)中期望刷新/重新索引的SysConfig bean正确吗
我没有在事件处理方法中获得刷新/重新索引的属性bean。但是Environment.getProperty()
反映了更改
是因为我的事件处理程序是在ConfigurationPropertiesRebinder
事件处理程序之前调用的吗
如何解决这个问题?我需要刷新SysConfig属性bean
版本:spring v4.1.6,boot v1.2.3,cloud config v1.0.1这类似于吗?我想你需要在你的
系统配置
@Stéphanenicol上添加@RefreshScope
,配置属性bean应该已经自动进入RefreshScope
,对吗?我们需要显式注释它吗?我用@RefreshScope
显式注释了SysConfig。还是没有变化。And/beans端点表示SysConfig在单例范围内。这就是它的工作原理吗?@StéphaneNicoll我通过调用ConfigurationPropertiesRebinder.rebind
成功地更新了SysConfig
。不确定这是不是正确的方法