在Java中,如何动态重新加载Web应用程序中的资源包?

时间:2020-03-06 14:57:56  来源:igfitidea点击:

我们正在使用fmt:setBundle从数据库加载资源束(我们扩展了ResourceBundle类来做到这一点)。
当我们修改数据库中的值时,我们必须重新加载Web服务器以在Web应用程序上显示新值。

是否有任何简单的方法可以使用新值而无需重新启动Web服务器?

(我们不想总是从数据库中查找值,但是我们想使高速缓存无效,例如通过调用特殊的" admin" URL)

编辑:我们正在使用JDK 1.4,所以我希望该版本上的解决方案。 :)

解决方案

如果我们使用的是JDK 1.6,则可以使用ResourceBundle.Control中的回调方法getTimeToLive()和needsReload()来控制是否需要使用数据库中的新值加载包缓存。

正如其他人在评论中指出的那样,我们可能希望研究Spring特别是ReloadableResourceBundleMessageSource。