2017-07-19 110 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