Spring refresh() obtainFreshBeanFactory()

28 阅读1分钟

image.png

image.png

image.png

image.png 刷新容器方法refreshBeanFactory由子类实现 image.png

createBeanFactory

image.png getInternalParentBeanFactory 返回的是null,因为在ClassPathXmlApplicationContext创建时选择的构造方法中parent为null image.png image.png new DefaultListableBeanFactory 一直super到AbstractAutowireCapableBeanFactory

image.png this()点进去 image.png

image.png

customizeBeanFactory

image.png

loadBeanDefinitions

image.png EntityResolver: 从本地读取dtd、schema约束 Spring 源码第三弹!EntityResolver 是个什么鬼?-CSDN博客

image.png 这个getconfiglocations的值就是 image.png

然后一直重载,直到doLoadBeanDefinitions

image.png

image.png

image.png

image.png

image.png parseDefaultElement解析默认命名空间的标签,parseCustomElement解析自定义标签 image.png

image.png image.png

image.png

image.png

image.png

this.beanDefinitionMap image.png