在Java中,如何动态地重新加载资源捆绑在一个Web应用程序?(In Java, how to re

2019-08-18 02:03发布

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

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

(我们希望总是仰望从数据库的价值,但我们希望通过调用一个特殊的“管理员”的URL缓存失效,例如)

编辑:我们使用的是JDK 1.4,所以我宁愿在该版本的解决方案。 :)

Answer 1:

正如其他人在评论中所指出的那样,你可能想寻找到春天-尤其是ReloadableResourceBundleMessageSource 。



Answer 2:

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



Answer 3:

首先,你可以创建一个从延伸类ReloadableResourceBundleMessageSource暴露其内部类保护的方法称为getProperties 。 此方法返回来自并发地图PropertiesHolder对象。 其次,你应该在你的网络配置类配置扩展类的豆。 现在,您可以在您的服务或业务层使用为messageSource。 下面是参考链路配置可重新加载的消息源包



文章来源: In Java, how to reload dynamically resources bundles in a web application?