【发布时间】:2017-03-24 10:05:49
【问题描述】:
我正在使用以下代码从我的项目中加载资源。
ResourceBundle props=ResourceBundle.getBundle("db");
加载正常。但是在这个加载之后,我正在修改同一个文件并试图从文件中获取最新的内容。 再次使用上面的代码加载相同的文件将返回旧文件内容。我认为它是从缓存中加载的。我们怎样才能重新加载这个资源呢?
【问题讨论】:
标签: java maven resourcebundle
我正在使用以下代码从我的项目中加载资源。
ResourceBundle props=ResourceBundle.getBundle("db");
加载正常。但是在这个加载之后,我正在修改同一个文件并试图从文件中获取最新的内容。 再次使用上面的代码加载相同的文件将返回旧文件内容。我认为它是从缓存中加载的。我们怎样才能重新加载这个资源呢?
【问题讨论】:
标签: java maven resourcebundle
是的,getBundle 工厂方法创建的资源包实例默认是缓存的,所以你可以通过以下方式避免这种情况
ResourceBundle.clearCache(ClassLoader loader)
使用生存时间值管理缓存资源包实例的生命周期。使用方法类ResourceBundle.Control public long getTimeToLive(String baseName, Locale locale)
指定不缓存资源包实例。使用方法类ResourceBundle.Control public boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime)
【讨论】: