加载xml配置文件,将bean注册到Map中
obtainFreshBeanFactory
org.springframework.context.support.AbstractApplicationContext#obtainFreshBeanFactory
1 | protected ConfigurableListableBeanFactory obtainFreshBeanFactory() { |
refreshBeanFactory
org.springframework.context.support.AbstractRefreshableApplicationContext#refreshBeanFactory
1 | protected final void refreshBeanFactory() { |
loadBeanDefinitions
有不同的实现类
XmlWebApplicationContext
默认的spring容器
org.springframework.web.context.support.XmlWebApplicationContext#loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory)
1 | protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory){ |
1 | protected void loadBeanDefinitions(XmlBeanDefinitionReader reader) { |
1 | public int loadBeanDefinitions(EncodedResource encodedResource) { |
1 | protected int doLoadBeanDefinitions(InputSource inputSource, Resource resource) { |
1 | private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(64); |
创建一个转换器实例然后调用注册benaDefinitions
1 | public int registerBeanDefinitions(Document doc, Resource resource) { |
1 | protected void doRegisterBeanDefinitions(Element root) { |
1 | protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) { |
1 | public BeanDefinition parseCustomElement(Element ele, BeanDefinition containingBd) { |
各种方法的标签解析,如何选择的呢?
1 | NamespaceHandler |