首页常见问题正文

spring bean容器的生命周期是什么样的?

更新时间:2023-09-04 来源:黑马程序员 浏览量:

IT培训班

  Spring容器管理Bean的生命周期,主要分为以下阶段:

  1.实例化(Instantiation)

  在这个阶段,Spring容器会创建Bean的实例。通常有两种方式来实例化Bean:通过构造函数实例化和通过工厂方法实例化。构造函数实例化是最常见的方式,Spring通过调用Bean的构造函数来创建Bean的实例。

  2.属性注入(Property Injection)

  一旦Bean实例化完成,Spring容器会注入Bean的属性,这些属性可以是基本数据类型、引用其他Bean或者集合等。

  3.初始化(Initialization)

  初始化阶段包括两个步骤:

  (1)调用Bean的afterPropertiesSet方法:

  如果Bean实现了InitializingBean接口,Spring容器会在属性注入后调用afterPropertiesSet方法,你可以在这个方法中执行一些初始化操作。

  (2)执行自定义的初始化方法:

  如果在配置中指定了自定义的初始化方法(例如通过XML配置的init-method属性或者注解中的@PostConstruct注解),Spring容器会在afterPropertiesSet方法之后调用这个自定义的初始化方法。

  4.Bean可用(Bean is Ready)

  一旦初始化阶段完成,Bean就处于可用状态,可以被其他Bean引用和使用。

  5.销毁(Destruction)

  Bean的销毁阶段也包括两个步骤:

  (1)调用Bean的destroy方法:如果Bean实现了DisposableBean接口,Spring容器会在Bean被销毁之前调用destroy方法,你可以在这个方法中执行一些清理操作。

  (2)执行自定义的销毁方法:如果在配置中指定了自定义的销毁方法(例如通过XML配置的destroy-method属性或者注解中的@PreDestroy注解),Spring容器会在destroy方法之后调用这个自定义的销毁方法。

  6.Bean销毁(Bean Destruction)

  最后,Spring容器会销毁Bean实例,释放资源,使其不再可用。

  需要注意的是,Bean的生命周期管理由Spring容器负责,开发者可以通过配置来影响Bean的生命周期,例如定义初始化方法、销毁方法,以及设置Bean的作用域等。默认情况下,Bean的作用域是单例(Singleton),也就是一个容器中只有一个Bean实例,但可以根据需要将作用域配置为原型(Prototype)或其他自定义作用域。

分享到:
在线咨询 我要报名
和我们在线交谈!