Bean的生命周期

.

Bean的生命周期_第1张图片

介绍

生命周期指的是⼀个对象从诞生到销毁的整个生命过程, 我们把这个过程就叫做⼀个对象的生命周期.

生命周期

  1. 实例化: (为Bean分配内存空间)
  2. 属性赋值: (Bean注入和装配,比如@Autowired)
  3. 初始化:
    a . 执行各种通知,如BeanNameAware,BeanFactoryAware,ApplicationContextAware的接口方法
    b . 执行初始化方法:
    . xml定义init-method
    . 使用注解的方式@PostConstruct
    . 执行初始化后置方法BeanPostProcessor
  4. 使用Bean
  5. 销毁Bean,销毁容器的各种方法, 如 @PreDestroy , DisposableBean 接口方法, destroymethod

代码演示

import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@Component
public class BeanLifeComponent implements BeanNameAware {
    private UserComponent userComponent;

    public BeanLifeComponent() {
        System.out.println("执⾏构造函数");
    }

    @Autowired
    public void setUserComponent(UserComponent userComponent) {
        System.out.println("设置属性userComponent");
        this.userComponent = userComponent;
    }

    @Override
    public void setBeanName(String s) {
        System.out.println("执⾏了 setBeanName ⽅法:" + s);
    }

    /**
     * 初始化
     */
    @PostConstruct
    public void postConstruct() {
        System.out.println("执⾏ PostConstruct()");
    }

    public void use() {
        System.out.println("执⾏了use⽅法");
    }

    /**
     * 销毁前执⾏⽅法
     */
    @PreDestroy
    public void preDestroy() {
        System.out.println("执⾏:preDestroy()");
    }
}

利用ApplicationContext来创建一个bean对象,并执行use方法
程序结果如下
Bean的生命周期_第2张图片
可以看到在Bean的生命周期中,各个方法的执行顺序

你可能感兴趣的:(java,开发语言)