我通过在应用程序中扩展TestReloadableResourceBundleMessageSource
来创建类ReloadableResourceBundleMessageSource
,并以这种方式实现。
public class TestReloadableResourceBundleMessageSource extends ReloadableResourceBundleMessageSource {
//....
}
@Bean
public TestReloadableResourceBundleMessageSource messageSource() {
String messagesPath = "C:/messages";
TestReloadableResourceBundleMessageSource messageSource = new TestReloadableResourceBundleMessageSource();
messageSource.setBasename("file:" + messagesPath);
messageSource.setCacheSeconds(0);
messageSource.setDefaultEncoding(Charsets.UTF_8.name());
return messageSource;
}
但是当我更改属性文件的值时,保存并重新加载页面后,无需重新启动服务器,我得到的是旧值而不是新值。
我的属性文件不在类路径中。
可能是原因,如何重新加载。任何解决方案将不胜感激。
我正在使用spring-boot 1.4.4.RELEASE
。
下面的代码对我有用。
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource resource = new ReloadableResourceBundleMessageSource();
String messageFolderPath = propertyLocation + "/" + "i18n";
resource.setBasename("file:"+messageFolderPath+"/messages");
resource.setDefaultEncoding("UTF-8");
resource.setCacheSeconds(10);
return resource;
}