--------------------------------------------------
ClassPathXmlApplicationContext / AnnotationConfigApplicationContext
--------------------------------------------------
1.AbstractApplicationContext.refresh
spring 容器初始化的核心方法
---------------------------------------------
1.1 ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
创建 BeanFactory 对象, 把 xml 标签解析成 BeanDefinition,并注册到 BeanFactory
-----------------------------------------
DefaultListableBeanFactory.beanDefinitionMap
DefaultListableBeanFactory.beanDefinitionNames
---------------------------------------------
1.2 invokeBeanFactoryPostProcessors(beanFactory);
-----------------------------------------
调用 BeanFactoryPostProcessor 和 BeanDefinitionRegistryPostProcessor
来对 beanDefinition 做增删改查,把基于 java 的 bean 配置,基于注解的 bean 配置,
解析成 beanDefinition,注册到 BeanFactory
-------------
spring 源码之核心流程
于 2023-02-27 17:17:24 首次发布