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

Mru*_*kla 5 java spring spring-boot

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

在此处输入图片说明

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

Locale locale = new Locale("en");
ResourceBundle errors = ResourceBundle.getBundle("errors", locale); 
System.out.println(errors.getString("E000"));
Run Code Online (Sandbox Code Playgroud)

这给了我以下异常:

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

但是,如果我将属性文件保留在文件夹之外,如下所示,它可以正常工作:

在此处输入图片说明

所以,

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

kj0*_*007 4

使用下面的方法将起作用:因为资源是您的类路径,所以您还需要传递消息..如果您将错误文件从消息移到类路径,那么它的工作原理是默认类路径是资源..

ResourceBundle errors = ResourceBundle.getBundle("messages/errors/errors", locale);
Run Code Online (Sandbox Code Playgroud)