八、bean标签的解析准备
本文最后更新于:2022年6月11日 下午
bean标签的解析准备
bean
标签解析过程:
processBeanDefinition()
方法
DefaultBeanDefinitionDocumentReader.processBeanDefinition()
:
1 |
|
parseBeanDefinitionElement()
方法
bean元素解析。
1 |
|
此处还未真正意义开始bean解析,只是解析前的准备工作,解析id、name属性,确定aliases集合,检测beanName是否唯一。
1 |
|
beanName命名规则
id不为空,beanName = id;
id为空,aliases不为空,beanName为aliases的第一个元素;
如果id、aliases都为空,使用默认规则命名:
spring通过核心接口
BeanNameGenerator
来生成beanName,目前只有两个具体实现类:AnnotationBeanNameGenerator
(注解)和DefaultBeanNameGenerator
(XML文件)。XML方式生成规则:
类名+'#'+数字
,注解方式生成规则:取短类名,即不包含路径,如果短类名长度大于1,且第一个第二个字母大写,则直接使用短类名,例
1
2com.jievhaha.TEst
则beanName=TEst其他情况短类名首字母小写。
parseBeanDefinitionElement()
方法
解析bean标签的所有属性和子元素,并创建返回AbstractBeanDefinition
。
1 |
|
createBeanDefinition()
方法
创建 AbstractBeanDefinition 对象。
1 |
|
八、bean标签的解析准备
http://www.muzili.ren/2022/06/11/开启解析进程/