【发布时间】:2011-10-14 22:00:45
【问题描述】:
我有很多配置文件可以修改我的应用程序的行为方式。我希望能够进行更改,并在保存文件时立即反映在应用程序中。是否有 Java 库可以帮助解决这个问题?
我可以简单地保留一个带有时间戳的文件列表,并在时间戳更改时不断检查后台线程。似乎不太难,但也许有更有效的方法来做到这一点?当某些属性发生变化时自定义触发器会很好。
我使用的是 Spring 3.1,是否有内置机制或解决方案可以很好地与 Spring 配合使用?
更新:显然 JDK7 现在通过其Watch Service API 包含此功能:“大多数文件系统实现都对文件更改通知提供本机支持。Watch Service API 充分利用在可用的情况下提供此支持。但是,当文件系统不支持此机制时,Watch Service 将轮询文件系统,等待事件。所以这将是我迁移到 JDK7 的动力。
【问题讨论】:
-
我不知道 Spring 部分,但是 Apache Commons Configuration 包装了
java.util.Properties并通过setReloadingStrategy()的自动重新加载支持对其进行了增强。另见commons.apache.org/configuration/userguide-1.2/… 它应该也可以在 Spring 应用程序上使用。
标签: java spring jakarta-ee file-io java-ee-6