在Java中自动重新加载更改的文件

在Java中自动重新加载更改的文件,java,spring,jakarta-ee,file-io,java-ee-6,Java,Spring,Jakarta Ee,File Io,Java Ee 6,我有很多配置文件可以修改我的应用程序的行为。我希望能够进行更改,并在保存文件时立即反映在应用程序中。是否有Java库可以帮助实现这一点 我可以简单地保留一个带有时间戳的文件列表,并在时间戳发生变化时不断地在后台线程中进行检查。看起来不太难,但也许有更有效的方法?当某些属性发生更改时,自定义触发器会更好 我正在使用Spring3.1,是否有一个内置的机制或解决方案可以很好地与Spring配合使用 更新:显然,JDK7现在通过其:“大多数文件系统实现对文件更改通知具有本机支持。Watch Servi

我有很多配置文件可以修改我的应用程序的行为。我希望能够进行更改,并在保存文件时立即反映在应用程序中。是否有Java库可以帮助实现这一点

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

我正在使用Spring3.1,是否有一个内置的机制或解决方案可以很好地与Spring配合使用


更新:显然,JDK7现在通过其:“大多数文件系统实现对文件更改通知具有本机支持。Watch Service API在可用的情况下利用了这种支持。但是,当文件系统不支持此机制时,Watch服务将轮询文件系统,等待事件发生。“因此,这将是我迁移到JDK7的动机。

编辑


有时配置值在一秒钟内需要多次…有时在应用程序的生命周期内需要一次。我只想在配置文件发生更改时重新加载配置文件。我计划迁移到JDK7以获得其本机支持,但看起来您提供的正是我所需要的,我希望它能够实现N通常也会更新以利用JDK7。@LuisP:抱歉,Apache配置在文件更改时不会重新加载文件(例如,它没有“文件更改”之类的事件),但它确保在每次访问配置属性时(如有必要)重新加载文件。该解决方案可以工作,但仅适用于配置(文本文件)。如果我想在图像文件更改时收到通知,该怎么办?问题不在于图像。而在于配置文件。我假设文本可能重复。我不知道Spring部分,但Apache Commons配置包装了
java.util.Properties
,并通过
setRel等自动重新加载支持来增强它LoadingStrategy()
。另请参阅,它也应该可以在Spring应用程序上使用。