本篇是基于“spring源码深度解析”第三章。问题驱动式。
本文还是基于xml配置的bean的解析,关于xml配置和注解各有优劣吧,具体的以后有机会另撰文细述。
spring解析bean的入口方法是parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate)
入参是element
和deligate
,如果是我来写这个方法就会单独起一个方法来解析bean,不会用一个bean解析定义类传入来解析element,这也是设计的优美的一点。等于是bean的相关解析全都交给了这个类,也体现了单一职责的表现。
注册bean的过程
-
ContructorArgumentValues
中 使用静态类ValueHolder作为保存值的优势在哪里? - 注册bean的类不在
DefaultBeanDefinitionDocumentReader
类中,而是使用了BeanDefinitionReaderUtils
中的注册方法,注册方法中传入了registry的类,然后委托给这个类来处理注册,具体的注册方法在registerBeanDefinition(String beanName, BeanDefinition beanDefinition)
中
好累,睡觉,待续