我有一个使用 i18n 的Spring MVC应用程序。现在,我想使用依赖项中提供的消息文件。我想使用相同的键/值在我的应用程序中具有一致的输出。但是不知何故,我想念什么?
我的ResourceHandler:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/WEB-INF/resources/");
}
我的MessageSource:
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource source = new ResourceBundleMessageSource();
source.setBasenames("messages/user/login/login",
"messages/user/user",
//external file (NOT WORKING)
"classpath:messages/enums/enums");
source.setDefaultEncoding("UTF-8");
return source;
}
从war
根开始的message.file的位置:
WEB-INF/lib/utils-0.1.jar/messages/enums/enums_en.properties
答案 0 :(得分:0)
我必须更改两件事才能使其正常工作:
ReloadableResourceBundleMessageSource
而不是ResourceBundleMessageSource
。classpath:
添加到所有基本名称。本地“资源”文件与依赖项内部的文件之间没有区别。最终代码如下:
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource source = new ResourceBundleMessageSource();
source.setBasenames("classpath:messages/user/login/login",
"classpath:messages/user/user",
//external file (in utils-0.1.jar)
"classpath:messages/enums/enums");
source.setDefaultEncoding("UTF-8");
return source;
}