码迷,mamicode.com
首页 > 编程语言 > 详细

springIOC源码接口分析(四):MessageSource

时间:2019-11-12 18:38:26      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:str   ble   default   国际化   local   文件中   源码   分析   col   

一 定义方法

MessageSource接口用于支持信息的国际化和包含参数的信息的替换

这个接口定义了三个方法:

public interface MessageSource {

    /**
     * 解析code对应的信息进行返回,如果对应的code不能被解析则返回默认信息defaultMessage。
     * @param 需要进行解析的code,对应资源文件中的一个属性名
     * @param 需要用来替换code对应的信息中包含参数的内容,如:{0},{1,date},{2,time}
     * @param defaultMessage 当对应code对应的信息不存在时需要返回的默认值
     * @param locale 对应的Locale
     * @return
     */
    String getMessage(String code, Object[] args, String defaultMessage, Locale locale);

    /**
     * 解析code对应的信息进行返回,如果对应的code不能被解析则抛出异常NoSuchMessageException
     * @param code 需要进行解析的code,对应资源文件中的一个属性名
     * @param args 需要用来替换code对应的信息中包含参数的内容,如:{0},{1,date},{2,time}
     * @param locale 对应的Locale
     * @return 
     * @throws NoSuchMessageException 如果对应的code不能被解析则抛出该异常
     */
    String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException;

    /**
     * 通过传递的MessageSourceResolvable对应来解析对应的信息
     * @param resolvable 
     * @param locale 对应的Locale
     * @return 
     * @throws NoSuchMessageException 如不能解析则抛出该异常
     */
    String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException;

}

ApplicationContext接口就继承MessageSource接口,所以所有的ApplicationContext实现类都实现了MessageSource接口

可以通过ApplicationContext来调用MessageSource接口方法,以实现信息的国际化和替换信息中包含的参数。

所有ApplicationContext实现类对MessageSource接口的实现,都是在AbstractApplicationContext中统一实现的,这样所有容器国家化调用父抽象类方法即可

springIOC源码接口分析(四):MessageSource

标签:str   ble   default   国际化   local   文件中   源码   分析   col   

原文地址:https://www.cnblogs.com/houzheng/p/11844150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!