Bean 的生命周期

Bean 的生命周期

bean 创建 —> 初始化 —> 销毁的过程

容器管理 bean 的生命周期
我们可以自定义初始化和销毁方法;容器在 bean 进行到当前生命周期的时候,来调用我们自定义的初始化和销毁方法

  • 构造(对象创建):
    单实例:在容器 启动 的时候创建对象
    多实例:在 每次获取 的时候创建对象

    BeanPostProcessor.postProcessBeforeInitialization
    
  • 初始化:
    对象创建完成,并赋值好,调用初始化方法

    BeanPostProcessor.postProcessAfterInitialization
    
  • 销毁:
    单实例:容器关闭的时候
    多实例:容器不会管理这个 bean;容器不会调用销毁方法

    1. 指定初始化和销毁方法:
      通过 @Bean 指定 init-methoddestory-method
    2. 通过让 Bean 实现 InitializingBean (实现初始化逻辑),DisposableBean(定义销毁逻辑)
    3. 可以使用 JSR250 规范:
      @PostConstruct: 在 bean 创建完成并且属性赋值完成后,执行初始化方法
      @PreDestory: 在容器销毁 bean 之前,通知我们进行清理工作
    4. BeanPostProcessor 「接口」: bean 的后置处理器,在 bean 初始化前后进行一些处理工作
      postProcessBeforeInitialization: 在初始化之前工作
      postProcessAfterInitialization: 在初始化之后工作

Mr.superbeyone


你可能感兴趣的:(Spring)