【Spring源码】13. 国际化处理initMessageSource()源码解析

发布于:2023-01-20 ⋅ 阅读:(262) ⋅ 点赞:(0)

负责这块功能的就是下图中红框框圈中的方法~

MessageSource

这个接口提供了处理消息的策略,包含了信息的国际化和包含参数信息的替换,里面包含三个重载方法

  • String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale);

    • 解析code对应的信息进行返回,如果对应的code不能被解析则返回默认信息defaultMessage

    • 参数解释

      • 需要进行解析的code,对应资源文件中的一个属性名

      • @param 需要用来替换code对应的信息中包含参数的内容,如:{0},{1,date},{2,time}

      • @param defaultMessage 当对应code对应的信息不存在时需要返回的默认值

      • @param locale 对应的Locale

  • String getMessage(String code, @Nullable Object[] args, Locale locale) throws NoSuchMessageException;

    • 解析code对应的信息进行返回,如果对应的code不能被解析则抛出异常NoSuchMessageException

    • 参数解释

      • @param code 需要进行解析的code,对应资源文件中的一个属性名

      • @param args 需要用来替换code对应的信息中包含参数的内容(${})

      • @param locale 对应的Locale

  • String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException;

    • 通过传递的MessageSourceResolvable对应来解析对应的信息

    • 参数传递

      • @param resolvable

      • @param locale 对应的Locale

主要参数解析

  • code:需要解析的code 对应资源文件的一个属性

  • args:需要用来替换的code中包含的参数的内容

  • defaultMessage :对应code信息不存在时返回的默认值

  • Locale :定义了多个代表一个特定的地理、政治或文化区域的常量


网站公告

今日签到

点亮在社区的每一天
去签到