zoukankan      html  css  js  c++  java
  • springIOC源码接口分析(四):MessageSource

    一 定义方法

    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中统一实现的,这样所有容器国家化调用父抽象类方法即可

  • 相关阅读:
    一个挺好用的自己写的小插件(用与把一般的图片转换成预制)——UNITY3D
    ios网络学习------4 UIWebView的加载本地数据的三种方式
    ios网络学习------6 json格式数据的请求处理
    OC 解决NSArray、NSDictionary直接打印中文出现乱码的问题
    网络数据的XML解析
    iOS对象序列化
    iOS数据存取和对象序列化
    iOS NSDictionary、NSData、JSON数据类型相互转换
    IOS四种保存数据的方式
    ios开发值json数据文件的存取
  • 原文地址:https://www.cnblogs.com/houzheng/p/11844150.html
Copyright © 2011-2022 走看看