Spring源码-bean的加载和初始化

文章目录

  • bean 核心类
    • beanFactory
  • bean definition
    • ConfigurableListableBeanFactory
    • AbstractRefreshableApplicationContext
  • bean creation
    • DefaultSingletonBeanRegistry
    • AbstractAutowireCapableBeanFactory
    • AbstractBeanFactory


  • spring使用版本 4.3.14.RELEASE

bean 核心类

beanFactory

最直接的就是源码部分注释:

  • factory: hold beanDefinitions
  • bean: bean unique name
  • registry: a central registry of application components
    Spring源码-bean的加载和初始化
    Spring源码-bean的加载和初始化
  • bean life cycle
    Spring源码-bean的加载和初始化
    Spring源码-bean的加载和初始化
    Spring源码-bean的加载和初始化
  • getBean
    Spring源码-bean的加载和初始化

bean definition

ConfigurableListableBeanFactory

```java
BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;
```	

Spring源码-bean的加载和初始化

AbstractRefreshableApplicationContext

Spring源码-bean的加载和初始化

  • loadBeanDefinitions

bean creation

  • BeanCurrentlyInCreationException
    Spring源码-bean的加载和初始化
  • AbstractAutowireCapableBeanFactory extends DefaultSingletonBeanRegistry
    Spring源码-bean的加载和初始化

DefaultSingletonBeanRegistry

Spring源码-bean的加载和初始化

  • doCreateBean 大体流程:
    • // Instantiate the bean.
    • // Allow post-processors to modify the merged bean definition.
    • // Eagerly cache singletons to be able to resolve circular references even when triggered by lifecycle interfaces like BeanFactoryAware.
    • // Initialize the bean instance.
    • // Register bean as disposable.
      Spring源码-bean的加载和初始化

AbstractAutowireCapableBeanFactory

protected Object createBean

AbstractBeanFactory

protected <T> T doGetBean
上一篇:Spring学习笔记--源码解析aop代理对象创建流程


下一篇:如何进行Spring源码分析?