八、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/开启解析进程/