作为ResourceBundleMessageSource的替代品,Spring提供了一个 ReloadableResourceBundleMessageSource类。此变体支持 相同的捆绑文件格式,但比标准JDK更灵活 基于ResourceBundleMessageSource实现。特别是它 允许从任何Spring资源位置读取文件(不仅仅是 来自classpath)并支持bundle属性的热重载 文件(同时有效地缓存它们之间)。看看 ReloadableResourceBundleMessageSource javadocs以获取详细信息。
如果我理解正确,您可以更改属性文件中的代码,服务器将在运行时立即加载它们。
如何在基于Spring boot的Web应用程序中实现热重新加载?
热重载的触发器是什么?
答案 0 :(得分:0)
您可以像这样创建一个ReloadableResourceBundleMessageSource
的bean
@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;
}
要使用它,您只需在课程中自动装配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