Java / Java EE动态设置运行时参数

时间:2012-02-22 05:31:42

标签: java-ee runtime

在生产环境中明确地在运行时设置系统属性是否可行/实用?如果有一个Web服务会更新系统属性 - 主要是标志。这些标志又可用于打开/关闭日志级别等。

操作将遵循这些方针:

  1. 在live prod应用程序中设置Web服务
  2. 访问网络服务[限制对特定用户的访问] - 这将提供一个更新系统属性的用户界面
  3. 应用程序将使用更新后的系统属性
  4. 有关此方法的任何建议吗?或者它已经很常见了?

2 个答案:

答案 0 :(得分:1)

我不明白为什么它不起作用,除非你的应用程序是跨多个JVM集群的。在这种情况下,您最好将配置存储在中央数据库中,或者使用JMS主题将更改传播到所有其他JVM。

如果你想在重启后使这些系统属性持久化,你也可以将它们存储在数据库中。

答案 1 :(得分:0)

这个想法让一些人感到畏缩,但确实有一些吸引力......你可以将你的属性存储在svn或git中,只需通过JMS Topic向服务器发送“刷新你的配置”通知,就像JB Nizet建议的那样。

一些不错的方面:

  • 所有配置都已版本化并且可以还原(完整编辑历史记录)
  • 易于维护多个版本并告知特定服务器“升级”
  • 有人打破了配置! ...... svn blame theconfig.properties

时间和名称与每次编辑相关联的事实可以很好地了解哪些手机着火。