如何使用/ src / main / resources中嵌套文件夹中的属性文件?

时间:2018-10-03 13:10:03

标签: java spring spring-boot

我有一个Spring Boot应用程序,我想在其中外部化消息。我将这些消息分类为错误,信息和成功。因此,我要创建一个嵌套的文件夹结构,如下所示:

enter image description here

而且,我正尝试通过以下方式从服务中访问它:

Locale locale = new Locale("en");
ResourceBundle errors = ResourceBundle.getBundle("errors", locale); 
System.out.println(errors.getString("E000"));

这给了我以下例外:

  

java.util.MissingResourceException:找不到基本名称错误,语言环境为en的包

但是,如果我按如下所示将属性文件保留在文件夹之外,则效果很好:

enter image description here

所以

  1. 如何确保ResourceBundle能够找到嵌套文件夹中的属性文件?
  2. 可以在不更新类路径的情况下完成吗?
  3. 这是管理应用程序消息的合适方法吗?还是还有更好的方法来外部化和管理这些错误,信息和成功消息?

1 个答案:

答案 0 :(得分:3)

下面的用法将起作用:由于资源是您的类路径,因此您还需要传递消息。.如果要将错误文件从消息中移出到类路径,则默认情况下它是作为资源使用的。

ResourceBundle errors = ResourceBundle.getBundle("messages/errors/errors", locale);