如何在Spring中动态维护,更新应用程序属性?

时间:2016-12-16 20:36:27

标签: spring spring-mvc

我想在Spring应用程序中维护一个应用程序属性列表,如服务端点,应用程序变量等。这些属性应该能够动态更新(可能由系统管理员通过网页)。

Spring是否有内置功能来完成此要求?

4 个答案:

答案 0 :(得分:0)

我不确定,但请检查一下你是否可以使用Spring引导框架的@ConfigurationProperties。

@ConfigurationProperties(locations = "classpath:application.properties", ignoreUnknownFields = false, prefix = "spring.datasource")
  1. 您可以在apppath
  2. 中保留此application.properties文件
  3. 更改此文件中的属性,而不重新部署应用程序
  4. Java专家 - 我只是想探索我的观点。我们随时欢迎更正。

    编辑 - 我在@PropertySource here

    上阅读了一个很好的例子

答案 1 :(得分:0)

我不确定spring是否有动态更新属性文件的实现。

您可以使用private void Form1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.F1: F1Pressed = true; break; case Keys.Left: if (F1Pressed) { // draw dot with border } else { // draw dot without border } break; case Keys.Right: if (F1Pressed) // and so on } } 将属性文件读取到FileInputStream对象中。然后,您将能够更新属性。稍后您可以使用Properties将属性写回同一文件。

FileOutputStream

答案 2 :(得分:0)

将您自己的PropertySource实施添加到Environment

警告: @ConfigurationProperties@Value注释使用的属性仅在应用程序启动时读取一次,因此在运行时更改实际属性值将无效(直到重新启动)。

答案 3 :(得分:-1)

外化属性,看看here

Spring加载这些属性,这些属性可以在运行时配置,并以不同的方式在应用程序中访问。