2017-07-19 52 views
0

下找到ReloadableResourceBundleMessageSource在spring framework reference春:我如何熱重載資源ReloadableResourceBundleMessageSource

作爲替代ResourceBundleMessageSource會,Spring提供了一個 ReloadableResourceBundleMessageSource類。該變體支持 相同的包文件格式,但比基於標準JDK 的ResourceBundleMessageSource實現更靈活。特別是,它允許從任何Spring資源位置(不僅僅是來自類路徑的 )讀取文件並且支持熱重載捆綁軟件文件 文件(同時有效地緩存它們之間)。查看 ReloadableResourceBundleMessageSource javadoc獲取詳細信息。

如果我理解正確,可以更改屬性文件中的代碼,服務器會在運行時立即加載它們。

如何在基於spring boot的web應用程序中實現熱重載?

什麼是熱重新加載的觸發器?

回答

0

你可以這樣

@Bean 
public ReloadableResourceBundleMessageSource messageSource() { 
    ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource(); 
    source.setBasename("classpath:test"); // name of the resource bundle 
    source.setDefaultEncoding("UTF-8"); 
    source.setCacheSeconds(10); 
    return source; 
} 

創建的ReloadableResourceBundleMessageSource一個bean要使用它,你可以自動裝配MessageSource在你的班上,並從包中獲取消息。

@Autowired 
MessageSource messageSource; 

public void getMessage() { 
    Locale locale = LocaleContextHolder.getLocale(); 
    String message = messageSource.getMessage("some.message", null, locale); 
} 

MessageSource不同於PropertySource。 現在,如果您正在討論用於配置spring的重新加載屬性(如application.properties),那麼請看here