Spring-boot ReloadableResourceBundleMessageSource不起作用

问题描述 投票:0回答:1

我通过在应用程序中扩展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

java spring spring-mvc spring-boot resourcebundle
1个回答
0
投票

下面的代码对我有用。

@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;
    }

© www.soinside.com 2019 - 2024. All rights reserved.