我有一个Spring集成Web应用程序,它导入一堆属性文件,如下所示:
<context:property-placeholder location="classpath*:*.properties" />
现在我将它转换为spring启动应用程序,我正在使用config类中的@PropertySource导入属性 . 我也在寻找一个未来的州项目的spring cloud配置服务器 . 所以我的问题是,当属性文件更改时需要刷新的所有bean都需要@RefreshScope,但此时我所知道的xml中没有等效属性 . 我以为我可以使用scope =“refresh”应用程序抛出错误,说“刷新”不是有效范围 . 那么如何在属性文件更改时管理刷新xml定义的bean .
我想我可以尝试捕获事件然后做一个context.refresh();但他们是一个更好的方法来做到这已经 Build 在 Spring 天?
1 回答
要注册自定义
Scope
,您需要声明一个bean定义 . 如果您使用@EnableAutoConfiguration
,则Spring Cloud Config会为您执行此操作 . 如果不这样做,则需要手动创建它(XML或非XML) . 例如 .(链接:https://github.com/spring-cloud/spring-cloud-config/blob/1.0.0.M2/spring-cloud-config-client/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java#L63)