本篇是基于“spring源碼深度解析”第三章。問題驅(qū)動式佳窑。
本文還是基于xml配置的bean的解析挽封,關(guān)于xml配置和注解各有優(yōu)劣吧,具體的以后有機(jī)會另撰文細(xì)述敬惦。
spring解析bean的入口方法是parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate)
入?yún)⑹?code>element和deligate
盼理,如果是我來寫這個方法就會單獨(dú)起一個方法來解析bean,不會用一個bean解析定義類傳入來解析element俄删,這也是設(shè)計的優(yōu)美的一點(diǎn)宏怔。等于是bean的相關(guān)解析全都交給了這個類奏路,也體現(xiàn)了單一職責(zé)的表現(xiàn)。
注冊bean的過程
-
ContructorArgumentValues
中 使用靜態(tài)類ValueHolder作為保存值的優(yōu)勢在哪里臊诊? - 注冊bean的類不在
DefaultBeanDefinitionDocumentReader
類中鸽粉,而是使用了BeanDefinitionReaderUtils
中的注冊方法,注冊方法中傳入了registry的類抓艳,然后委托給這個類來處理注冊触机,具體的注冊方法在registerBeanDefinition(String beanName, BeanDefinition beanDefinition)
中
好累,睡覺玷或,待續(xù)