【问题标题】:Auto-reload changed files in Java在 Java 中自动重新加载更改的文件
【发布时间】:2011-10-14 22:00:45
【问题描述】:

我有很多配置文件可以修改我的应用程序的行为方式。我希望能够进行更改,并在保存文件时立即反映在应用程序中。是否有 Java 库可以帮助解决这个问题?

我可以简单地保留一个带有时间戳的文件列表,并在时间戳更改时不断检查后台线程。似乎不太难,但也许有更有效的方法来做到这一点?当某些属性发生变化时自定义触发器会很好。

我使用的是 Spring 3.1,是否有内置机制或解决方案可以很好地与 Spring 配合使用?

更新:显然 JDK7 现在通过其Watch Service API 包含此功能:“大多数文件系统实现都对文件更改通知提供本机支持。Watch Service API 充分利用在可用的情况下提供此支持。但是,当文件系统不支持此机制时,Watch Service 将轮询文件系统,等待事件。所以这将是我迁移到 JDK7 的动力。

【问题讨论】:

标签: java spring jakarta-ee file-io java-ee-6


【解决方案1】:

【讨论】:

  • 有时每秒需要多次配置值...有时在应用程序的生命周期中需要一次。我只想在配置文件更改时重新加载它们。
  • 我计划迁移到 JDK7 以获得其原生支持,但看起来您已经提供了我正在寻找的东西,我希望它最终会更新以利用 JDK7 作为好吧。
  • @LuisP:抱歉,Apache 配置在文件更改时不会重新加载文件(例如,它没有“FILE_CHANGED”之类的事件),但它会确保重新加载文件(如有必要)每次你例如访问配置属性。该解决方案将起作用,但仅适用于配置(文本文件)。如果我想在图像文件发生更改时收到通知怎么办?
  • 问题不在于图像.. 在于配置文件。我假设是文本。
猜你喜欢
  • 2012-05-07
  • 2013-10-06
  • 1970-01-01
  • 2016-06-12
  • 2014-08-19
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
相关资源
最近更新 更多