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

  • spring使用版本 4.3.14.RELEASE

bean 核心类

beanFactory

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

  • factory: hold beanDefinitions
  • bean: bean unique name
  • registry: a central registry of application components
    在这里插入图片描述
    在这里插入图片描述
  • bean life cycle
    Bean life Cycle
    在这里插入图片描述
    在这里插入图片描述
  • getBean
    在这里插入图片描述

bean definition

ConfigurableListableBeanFactory

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

在这里插入图片描述

AbstractRefreshableApplicationContext

在这里插入图片描述

  • loadBeanDefinitions

bean creation

  • BeanCurrentlyInCreationException
    在这里插入图片描述
  • AbstractAutowireCapableBeanFactory extends DefaultSingletonBeanRegistry
    在这里插入图片描述

DefaultSingletonBeanRegistry

在这里插入图片描述

  • 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.
      在这里插入图片描述

AbstractAutowireCapableBeanFactory

protected Object createBean

AbstractBeanFactory

protected <T> T doGetBean
原文地址:https://www.cnblogs.com/coding-now/p/14660595.html