spring boot国际化之MessageSource的使用方法

 更新时间:2020年11月24日 12:01:42   作者:Hello, I''m Tina  
这篇文章主要给大家介绍了spring boot国际化之MessageSource使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

修改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

/**
 * 国际化
 * 注:通过@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的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现快递物流查询功能(快递鸟)

    SpringBoot实现快递物流查询功能(快递鸟)

    本文将基于springboot2.4.0实现快递物流查询,物流信息的获取通过快递鸟第三方实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-10-10
  • java实现在线聊天系统

    java实现在线聊天系统

    这篇文章主要为大家详细介绍了java实现在线聊天系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • SpringBoot+Tess4j实现牛的OCR识别工具的示例代码

    SpringBoot+Tess4j实现牛的OCR识别工具的示例代码

    这篇文章主要介绍了SpringBoot+Tess4j实现牛的OCR识别工具的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • SpringBoot3.0整合chatGPT的完整步骤

    SpringBoot3.0整合chatGPT的完整步骤

    ChatGPT是OpenAI推出的一个语言模型系统,它能够实时回答用户提问,包括聊天、纠正语法错误,甚至是写代码、写剧本等,由于可玩性很高,迅速在全球范围内风靡起来,下面这篇文章主要给大家介绍了关于SpringBoot3.0整合chatGPT的完整步骤,需要的朋友可以参考下
    2022-12-12
  • java调用python代码的两种实现方式:Runtime.exec()和Jython

    java调用python代码的两种实现方式:Runtime.exec()和Jython

    在Java中调用Python代码有多种方法,包括使用Runtime.exec()和第三方库如Jython,Runtime.exec()通过系统命令执行Python脚本,适用于简单的调用场景,Jython则是一个Python的Java实现,允许在Java中直接运行Python代码,适用于更深层次的集成需求
    2025-01-01
  • Java配置HTTP/Socks代理的简单快速上手方法

    Java配置HTTP/Socks代理的简单快速上手方法

    这篇文章主要为大家介绍了Java配置HTTP/Socks代理的简单快速上手方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 详解Spring事件发布与监听机制

    详解Spring事件发布与监听机制

    Spring提供了ApplicationContext事件机制,可以发布和监听事件,这个特性非常有用。Spring内置了一些事件和监听器,例如在Spring容器启动前,Spring容器启动后,应用启动失败后等事件发生后,监听在这些事件上的监听器会做出相应的响应处理
    2021-06-06
  • Java利用套接字实现应用程序对数据库的访问

    Java利用套接字实现应用程序对数据库的访问

    所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。这篇文章主要介绍了Java利用套接字实现应用程序对数据库的访问,感兴趣的可以了解一下
    2022-09-09
  • SpringBoot应用的接口访问从HTTP改为HTTPS

    SpringBoot应用的接口访问从HTTP改为HTTPS

    本文主要介绍了SpringBoot应用的接口访问从HTTP改为HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • 学习Java之File文件操作方法

    学习Java之File文件操作方法

    这篇文章我们主要学习如何实现IO流的具体操作,但很多时候,IO流都会操作一个文件,所以我们需要先学习在Java中如何操作文件,包括文件及文件夹的创建、遍历、删除等,有了文件操作的基础,我们才能更好地操作IO流,文中有详细的代码示例,需要的朋友可以参考下
    2023-09-09

最新评论