java 中的 ResourceBundle 重新加载错误
ResourceBundle Reloading Error in java
我正在使用以下代码从我的项目中加载资源。
ResourceBundle props=ResourceBundle.getBundle("db");
加载正常。但是在这次加载之后我修改了同一个文件并试图从文件中获取最新的内容。
再次使用上面的代码加载同一个文件返回旧文件内容。我认为它是从缓存中加载的。我们如何重新加载此资源?
是的,通过getBundle工厂方法创建的Resource bundle实例默认被缓存,所以你可以通过以下方式避免
- 清除缓存。
ResourceBundle.clearCache(ClassLoader loader)
使用生存时间值管理缓存资源包实例的生命周期。使用方法 Class ResourceBundle.Control public long getTimeToLive(String baseName, Locale locale)
指定不缓存资源包实例。使用方法 Class ResourceBundle.Control public boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime)
我正在使用以下代码从我的项目中加载资源。
ResourceBundle props=ResourceBundle.getBundle("db");
加载正常。但是在这次加载之后我修改了同一个文件并试图从文件中获取最新的内容。 再次使用上面的代码加载同一个文件返回旧文件内容。我认为它是从缓存中加载的。我们如何重新加载此资源?
是的,通过getBundle工厂方法创建的Resource bundle实例默认被缓存,所以你可以通过以下方式避免
- 清除缓存。
ResourceBundle.clearCache(ClassLoader loader)
使用生存时间值管理缓存资源包实例的生命周期。使用方法 Class ResourceBundle.Control
public long getTimeToLive(String baseName, Locale locale)
指定不缓存资源包实例。使用方法 Class ResourceBundle.Control
public boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime)