面试--02 Spring Bean的生命周期?

69 篇文章 1 订阅
55 篇文章 3 订阅

Spring Bean的生命周期?

1

@Component
public class TestBean{
}

2

@Bean
public Object myObject(){
}

常用的是上面这两种:第一种是通过Component注解标注类;第二中方式是在方法上做@Bean的注解。我们都知道,注解标注的方法或者类,便会被spring扫描,并最终生成一个bean。本文不详细讨论bean扫描的过程,只分析bean初始化过程中的一些接口。
那么,Spring 创建 Bean 就可以分为两大步骤,第一步是由Springboot 扫描并获取BeanDefinition;第二部,是初始化Bean。spring 在bean的初始化过程为我们提供了很多的接口,我们可以用它们在bean的生成过程中做一些事情。这些接口均采用回调的方式,以下是部分接口的介绍和回调时机。

接口说明回调时机
BeanNameAware如果你的bean实现了该接口的 setName 方法,则可以通过这个方法获取到bean名发生在bean生命周期初期,早于构造方法
ApplicationContextAware如果一个bean实现了该接口的setApplicationContext 方法,则可以通过此方法获取到ApplicationContext调用于生命周期初期,在BeanNameAware和构造方法之间
InitializingBean此接口的方法为 afterPropertiesSet在bean工厂设置完bean的所有属性之后,会回调此方法。回调时机在构造方法之后
BeanPostProcessor此接口有 postProcessBeforeInitialization、postProcessAfterInitialization两个方法,分别对应了Bean生命周期的两个回调这两个方法也在构造方法之后,不过分别在 InitializingBean 前后
如果将上面的接口加入,则 bean 生命周期大致如下图(图二):

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值