Spring 刷新属性占位符机制

Posted

技术标签:

【中文标题】Spring 刷新属性占位符机制【英文标题】:refresh property placeholder mechanism at Spring 【发布时间】:2013-12-14 07:10:35 【问题描述】:

我有一个Spring 上下文xml 文件和一个由PropertyPlaceholderConfigurer 机制创建的特定bean。 我的问题是:当应用程序正在运行时,相关的属性文件发生了变化,我不想重新启动应用程序。我想在不重启应用的情况下重新加载相关的 bean。

什么是我的目标的最佳解决方案?

【问题讨论】:

【参考方案1】:

你可以看看ReloadablePropertiesAnnotation在github上https://github.com/jamesemorgan/ReloadablePropertiesAnnotation

这应该只是通过注释你的属性来工作

@ReloadableProperty("dynamicProperty.myProperty")
private String myProperty;

您还必须添加一些 spring 配置以及查看 github 上的示例或此博客 http://www.morgan-design.com/2012/08/reloadable-application-properties-with.html

在底层,这是使用 Guava 的 EventBus 在创建 bean 后更新 bean 的属性。

【讨论】:

Spring 有什么办法而且不需要额外的实用程序吗?

以上是关于Spring 刷新属性占位符机制的主要内容,如果未能解决你的问题,请参考以下文章

Spring_属性占位符

使用 Spring 从属性文件加载嵌套占位符

Spring Boot:更改属性占位符符号

Spring Boot 配置属性的未解决占位符验证

使用 Spring 属性占位符从文件 .properties 中读取列表

如何在 Spring 中以编程方式解析属性占位符