如何正确运用Spring Boot中的MessageSource实现国际化?

2026-04-30 07:142阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计290个文字,预计阅读时间需要2分钟。

如何正确运用Spring Boot中的MessageSource实现国际化?

前言:修改properties文件目录

修改properties文件的目录:在application.yml或application.properties中配置propertiesspring.message.basename=spring:application:name:test-worklog:messages:basename:i18n/messagesencoding=UTF-8MessageSource的使用:

1.无

前言

修改properties文件的目录:在application.yml或者application.properties中配置 spring.message.basename

spring: application: name: test-worklog messages: basename: i18n/messages encoding: UTF-8

MessageSource的使用:

1. 无参数

operation.success = 操作成功。

String msg1 = this.messageSource.getMessage(" operation.success ", null, Locale.CHINA);

2. 动态参数

start.ge.end = 开始日期{0}必须小于结束日期{1}!

String [] param = {startDate, endDate}; String msg =getMessage("start.ge.end", param); @Autowired private MessageSource messageSource; /** * 国际化 * * @param result * @return */ public String getMessage(String result, Object[] params) { String message = ""; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { LOGGER.error("parse message error! ", e); } return message; }

补充一个方法,适用于类中无法获取到MessageSource

如何正确运用Spring Boot中的MessageSource实现国际化?

/** * 国际化 * 注:通过@Autowired private MessageSource messageSource无法获取 * * @param result * @return */ public String getMessage(String result, Object[] params) { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setCacheSeconds(-1); messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name()); messageSource.setBasenames("/i18n/messages"); String message = ""; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { log.error("parse message error! ", e); } return message; }

总结

到此这篇关于spring boot国际化之MessageSource使用方法的文章就介绍到这了,更多相关springboot国际化MessageSource的使用内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计290个文字,预计阅读时间需要2分钟。

如何正确运用Spring Boot中的MessageSource实现国际化?

前言:修改properties文件目录

修改properties文件的目录:在application.yml或application.properties中配置propertiesspring.message.basename=spring:application:name:test-worklog:messages:basename:i18n/messagesencoding=UTF-8MessageSource的使用:

1.无

前言

修改properties文件的目录:在application.yml或者application.properties中配置 spring.message.basename

spring: application: name: test-worklog messages: basename: i18n/messages encoding: UTF-8

MessageSource的使用:

1. 无参数

operation.success = 操作成功。

String msg1 = this.messageSource.getMessage(" operation.success ", null, Locale.CHINA);

2. 动态参数

start.ge.end = 开始日期{0}必须小于结束日期{1}!

String [] param = {startDate, endDate}; String msg =getMessage("start.ge.end", param); @Autowired private MessageSource messageSource; /** * 国际化 * * @param result * @return */ public String getMessage(String result, Object[] params) { String message = ""; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { LOGGER.error("parse message error! ", e); } return message; }

补充一个方法,适用于类中无法获取到MessageSource

如何正确运用Spring Boot中的MessageSource实现国际化?

/** * 国际化 * 注:通过@Autowired private MessageSource messageSource无法获取 * * @param result * @return */ public String getMessage(String result, Object[] params) { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setCacheSeconds(-1); messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name()); messageSource.setBasenames("/i18n/messages"); String message = ""; try { Locale locale = LocaleContextHolder.getLocale(); message = messageSource.getMessage(result, params, locale); } catch (Exception e) { log.error("parse message error! ", e); } return message; }

总结

到此这篇关于spring boot国际化之MessageSource使用方法的文章就介绍到这了,更多相关springboot国际化MessageSource的使用内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!