Spring Bean的生命周期

发布于:2024-03-13 ⋅ 阅读:(66) ⋅ 点赞:(0)

Spring Bean的生命周期可以分为以下几步:
1.通过Spring框架的beanFactory工厂利用反射机制创建bean对象;
2.根据set方法或者有参构造方法给bean对象的属性进行依赖注入;
3.判断当前bean对象是否实现相关的aware接口,诸如beanNameAware、beanFactoryAware接口,如果有的话执行对应的方法;
4.执行bean对象的后置处理器postprocessbeforinitialztion
5.执行初始化方法initMethod
6.执行bean对象的后置处理器postprocessafterinitialztion
7.判断当前bean对象是否为单例,是则放到spring对象容器中,多例直接返回bean对象;
8.使用bean对象;
9.关闭容器,调用destroy方法销毁对象。

 

来自文心一言

1.创建Bean对象:

Spring容器通过BeanFactory或ApplicationContext利用反射机制创建Bean的实例。

2.依赖注入:

根据Bean定义中的属性设置或构造方法参数,Spring容器通过自动装配或显式配置,为Bean的属性注入依赖的其他Bean或值。

3.Aware接口回调:

如果Bean实现了BeanNameAware、BeanFactoryAware等Aware接口,Spring容器会在Bean初始化过程中调用相应的回调方法,将相关信息(如Bean的名称、BeanFactory等)传递给Bean。

4.前置处理器(Post-Processor)的postProcessBeforeInitialization方法:

如果在Spring配置中定义了Bean后置处理器(如BeanPostProcessor),那么在Bean的初始化方法执行前,会先调用这些后置处理器的postProcessBeforeInitialization方法。这允许在Bean的初始化阶段之前对Bean进行额外的处理或修改。

5.执行初始化方法:

如果Bean实现了InitializingBean接口,则会调用其afterPropertiesSet方法;或者,如果Bean定义中指定了init-method属性,则调用该指定的初始化方法。

6.后置处理器(Post-Processor)的postProcessAfterInitialization方法:

在Bean的初始化方法执行后,会再次调用Bean后置处理器的postProcessAfterInitialization方法。这允许在Bean的初始化阶段之后对Bean进行额外的处理或修改。

7.将Bean放入容器:

对于单例Bean,Spring容器会将其缓存起来,以便后续使用;对于原型Bean,每次请求时都会创建新的实例。

8.使用Bean:

应用程序可以通过Spring容器获取并使用这些Bean,进行业务逻辑的处理。

9.销毁Bean:

当Spring容器关闭时,会销毁所有的单例Bean。如果Bean实现了DisposableBean接口,则会调用其destroy方法;或者,如果Bean定义中指定了destroy-method属性,则调用该指定的销毁方法。这允许Bean在销毁前执行必要的清理操作。

通过这个过程,Spring容器确保了Bean的完整生命周期管理,从创建到初始化,再到使用,最后销毁,都受到了Spring容器的精确控制。这使得Spring应用能够更加灵活、高效地管理Bean的生命周期。

 

 


网站公告

今日签到

点亮在社区的每一天
去签到