org.springframework.context.MessageSource
由“ReloadableResourceBundleMessageSource”和"ResourceBundleMessageSource"扩展
ReloadableResourceBundleMessageSource可动态加载,不用重启应用。
配置方式:
1.定义一个service
public class I18nService {
private final MessageSource messageSource;
public I18nService(MessageSource messageSource) {
this.messageSource = messageSource;
}
public String getMessage(String msgKey, Object[] args,Locale locale) {
return messageSource.getMessage(msgKey, args, locale);
}
public String getMessage(String msgKey,Locale locale) {
return messageSource.getMessage(msgKey, null, locale);
}
}
2.定义javabean
@Configuration
public class MessageSourceConfig {
@Bean
public I18nService i18nService() {
return new I18nService(messageSourceReload());
}
@Bean
public MessageSource messageSourceReload() {
ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource=
new ReloadableResourceBundleMessageSource();
reloadableResourceBundleMessageSource.setDefaultEncoding("UTF-8");
//若使用ReloadableResourceBundleMessageSource则需要加"classpath:messages"
//若使用ResourceBundleMessageSource则直接用"messages"
//定义国际化文件的前缀
reloadableResourceBundleMessageSource.setBasenames("classpath:messages");
return reloadableResourceBundleMessageSource;
}
}
3.通过注入实现国际化
@Autowired
private I18nService i18nService;
PS:忘记转载地址是哪个了,抱歉。