外部维护Java资源属性文件

时间:2014-02-22 12:41:07

标签: java resourcebundle

之前我将属性文件放在classpath src/中。现在我想把它放在一个名为config/的文件夹中。通过这种方式,最终用户可以自己修改文件。

但是现在我的代码不再适用了

ResourceBundle.getBundle("Messages", Locale.getDefault());

我在代码中的意思不再起作用,在我部署应用程序并修改Messages_en_US.properties后,不会发生更改。

我怎样才能实现我想要的目标?我应该使用getBundle吗?

修改

我已将config文件夹添加到类路径中,但我不确定这是否相关。这是一个普通的Java应用程序,我没有使用Maven或任何构建工具。

enter image description here

1 个答案:

答案 0 :(得分:0)

默认情况下,ResourceBundle仅在首次请求时加载,并重新用于后续请求。您可以使用ResourceBundle.clearCache();

丢弃缓存的ResourceBundle

此外,by default,ResourceBundles从类路径加载。因此,您必须确保有问题的类加载器不会缓存资源。或者您可以provide自己的ResourceBundle.Control以您喜欢的方式加载属性文件。