spring的加载过程(web) (6)--initMessageSource 为本context初始化消息源
方法定义:初始化信息源。如果在本context中没定义,用父的messagesource。
1)判断是否包含messageSource这个默认的资源文件处理bean.
<1>如果存在则,使信息源认识父信息源(关联到父信息源)。
<2>反之,用空信息源接收getmessage calls。(new DelegatingMessageSource())
2)判断是否存在父信息源,如果没有注册好父信息源,则只设置父context本身作为父信息源
//===================================================================
1)HierarchicalBeanFactory#containsLocalBean
判断本地的BeanFactory是否包含一个给定名字的bean,忽略定义在祖先的context里的bean
2)BeanFactory#getBean(String name, Class requiredType)
返回一个可能是一个单例或者是共享的特指的bean实例.操作等价于getBean(String)
,但是提供了一个衡量的类型安全的机制,如果bean不是必须类型,则抛出BeanNotOfRequiredTypeException. 意味着当结果是正确的,ClassCastException没有被抛出,跟发生在getBean(String)
一样。
3)HierarchicalMessageSource#setParentMessageSource设置用来尝试解决对象不能解决信息的父资源。