代码之家  ›  专栏  ›  技术社区  ›  Il-Bhima

从属性文件自动刷新SpringBean属性

  •  5
  • Il-Bhima  · 技术社区  · 16 年前

    PropertyPlaceholderConfigurer . 我想知道在修改属性文件时是否可能更新bean的属性。例如,将有一些周期性的过程来检查属性文件的最后修改日期,如果它已更改,则重新加载bean。

    我想知道是否已经有满足我要求的东西了。如果没有,解决这个问题的最佳方法是什么?

    谢谢你的帮助。

    5 回复  |  直到 16 年前
        1
  •  3
  •   jor    16 年前

    还可以考虑使用Spring的PropertyOverrideConfiguler。可以重新读取属性并在某些轮询/调度bean中重新应用它。

    它确实取决于实际配置的bean如何使用这些属性。例如,它们可能会间接地将它们缓存在自己的某个位置。

        2
  •  2
  •   duffymo    16 年前

    如果您希望在运行时使用动态属性,另一种方法可能是JMX。

        3
  •  0
  •   Steve B.    16 年前

    一种方法是在应用程序中嵌入groovy控制台。 Here's

    一旦您这样做了,您就可以进入控制台,动态地更改实时应用程序中的值。

        4
  •  0
  •   Community CDub    8 年前

    您可以尝试为bean使用自定义作用域,该作用域在属性文件更改时重新创建bean。看我的 more extensive answer here .

        5
  •  0
  •   Lev    9 年前

    Spring Cloud Config 具有通过Spring云总线和云配置服务器在运行时更改配置属性的功能。配置或.properties或.yml文件从Spring应用程序中“外部化”,而不是从应用程序启动时连接到的Spring云配置服务器中检索。云配置服务器从GIT repo检索适当的configuration.properties或.yml文件(还有其他存储解决方案,但GIT是最常见的)。然后,您可以在运行时通过更改GIT repo配置文件的内容来更改配置——云配置服务器通过Spring云总线将更改广播到任何客户端Spring应用程序,这些应用程序的配置将在不需要重新启动应用程序的情况下更新。您可以在这里找到一个简单的工作示例: https://github.com/ldojo/spring-cloud-config-examples