刷新spring启动属性

刷新spring启动属性,spring,spring-boot,spring-integration,Spring,Spring Boot,Spring Integration,我有一个spring集成web应用程序,它导入了一系列属性文件,如下所示: <context:property-placeholder location="classpath*:*.properties" /> 现在,我将它转换为spring引导应用程序,并在config类中使用@PropertySource导入属性。我还在为未来的州项目研究SpringCloudConfig服务器。所以我的问题是,当属性文件更改时需要刷新的所有bean都需要@RefreshScope,但我知道

我有一个spring集成web应用程序,它导入了一系列属性文件,如下所示:

<context:property-placeholder location="classpath*:*.properties" />

现在,我将它转换为spring引导应用程序,并在config类中使用@PropertySource导入属性。我还在为未来的州项目研究SpringCloudConfig服务器。所以我的问题是,当属性文件更改时需要刷新的所有bean都需要@RefreshScope,但我知道xml中目前没有等效的属性。我想我可以使用scope=“refresh”应用程序抛出一个错误,表示“refresh”不是有效的作用域。那么,当属性文件更改时,如何管理刷新xml定义的bean呢


我想我可以尝试捕获事件,然后执行上下文刷新();但是,它们是一种更好的方法吗?spring中已经内置了这种方法。

要注册一个自定义的
范围,您需要声明一个bean定义。如果您使用
@EnableAutoConfiguration
,Spring Cloud Config将为您实现这一点。如果没有,则需要手动创建它(XML或非XML)。例如

(链接:)

@Bean
public static RefreshScope refreshScope() {
    return new RefreshScope();
}