【面试题-3】Spring Bean的生命周期

概要生命周期

Bean的生命周期简单概括:

  1. 实例化
  2. 属性赋值
  3. 初始化
  4. 使用
  5. 销毁

实例化

实例化 Bean的实例


// AbstractAutowireCapableBeanFactory.java
protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] args)
    throws BeanCreationException {
 
    // 1. 实例化
    BeanWrapper instanceWrapper = null;
    if (instanceWrapper == null) {
        instanceWrapper = createBeanInstance(beanName, mbd, args);
    }
    
    Object exposedObject = bean;
    try {
        // 2. 属性赋值
        populateBean(beanName, mbd, instanceWrapper);
        // 3. 初始化
        exposedObject = initializeBean(beanName, exposedObject, mbd);
    }
 
    // 4. 销毁-注册回调接口
    try {
        registerDisposableBeanIfNecessary(beanName, bean, mbd);
    }
 
    return exposedObject;

posted @ 2021-05-14 10:43  澎拜编程  阅读(396)  评论(0)    收藏  举报