java - 如何在 java 包(Spring Boot)中加载“messages.properties”?
问题描述
我想messages.properties
从 java 包中加载多个文件。
我有一个项目设置,例如:
并且AppConfig.java
是:
@Configuration
public class AppConfig extends AcceptHeaderLocaleResolver implements WebMvcConfigurer {
...
@Bean
public ResourceBundleMessageSource messageSource() {
final ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasenames(
"file:./project/foo/messages.properties", // Not working
"file:./project/bar/messages.properties"
);
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
但上述设置不起作用。如何messages.properties
从 java 源包中加载多个?甚至可能吗?
我只是不想使用该文件夹src/main/resources
- 我想将文件messages.properties
放在每个包文件夹中。
另外,我想重命名文件ProjectFooMessage.properties
以匹配文件名(自定义名称)。请赐教!
注意:我使用的是 Spring Boot 2.1.14
解决方案
我终于弄明白了。我需要改变pom.xml
// pom.xml
...
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
...
关键部分是<include>**/*.properties</include>
- 这样我就可以*.properties
在 Java 源文件夹中包含所有文件。
然后,我可以使用以下代码访问该文件:
...
messageSource.setBasename("classpath:project/foo/messages");
...
哇哦!
推荐阅读
- vue.js - 更改 Vue 分隔符
- c++ - 如何对二维数组进行排序?
- html - CSS 重置页边距
- javascript - 有什么方法可以在javascript中将转义字符转换为反斜杠?
- function - Dart & Flutter:如何在另一个类中调用一个类方法
- flutter - 如何在颤振中创建堆叠的时间序列条形图?
- python - 从python中的字符串中删除子字符串
- express - 使用 mocha、chai、chai-http 和 sinon 在 Express API 上测试 try-catch
- typescript - 是否可以有条件地要求 Typescript 界面中的属性
- python - 从列表输出中删除“dtype”和“object”