13 bean的生命周期

vvEcho 2024-01-20 14:08:36
Categories: Tags:

面试中若问道spring的启动流程,其实和问bean的生命周期是差不多的意思

这里我说下我个人的理解,bean的生命周期指的是:

被spring管理的一个bean从创建到销毁的过程,一般分为:实例化→属性注入→初始化→使用→销毁五大阶段,初始化阶段再细分为 Aware、前置处理、自定义初始化、后置处理

1.实例化:当我们启动项目时,spring框架扫描所有的配置类,通过构造方法或工厂创建bean对象(通过反射调用构造函数或new Bean())

2.属性赋值:通过@Autowired,@Value注解,xml配置,set方法注入属性

3.初始化:处理aware回调(设置bean名称,上下文信息);bean的前置增强(如@PostConstruct);bean的自定义初始化();beand的后置增强(如aop代理创建)

4.使用:注入到容器后,通过getBean()获取bean对象,被应用程序调用

5.销毁:销毁前回调:@PreDestroy 方法(类似退休前的交接工作)
自定义销毁:DisposableBean.destroy() 或 destroy-method(类似生命终结)

tip:Aware 接口 先于 BeanPostProcessor
初始化顺序:@PostConstruct → afterPropertiesSet() → init-method

流程图如下:

代码示例见:LocalDemo/src/main/java/com/local/demo/test/beanlife