2008-10-01 34 views
8

我们使用fmt:setBundle从数据库加载资源包(我们扩展了ResourceBundle类来完成这个工作)。 当我们修改数据库中的值时,必须重新加载Web服务器才能在Web应用程序上显示新值。在Java中,如何重新加载Web应用程序中的资源包?

有没有简单的方法来使用新的值,而无需重新启动Web服务器?

(我们做要始终查找来自数据库的价值,但我们希望通过调用一个特殊的“管理员”的URL缓存失效,例如)

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

+0

如果您不太关注ResourceBundle类本身,那么Spring的MessageSource抽象提供了一种更灵活的方法,包括缓存和重新加载消息。它可以包装您的自定义ResourceBundle。如有必要,您可以单独使用Spring API的那一点。 – skaffman 2008-10-01 07:40:19

回答

7

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

相关问题