死记硬背spring bean 的生命周期

1.bean的生命周期

我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容器所控制。Spring 中每个 Bean 的生命周期如下:

2.主要步骤简述

  • 实例化 Bean:通过反射调用构造方法实例化对象。
  • 依赖注入:装配 Bean 的属性。
  • 实现了 Aware接口的 Bean,执行接口方法(如创建bean的名称等等):如顺序执行 BeanNameAware、BeanFactoryAware、ApplicationContextAware的接口方法。
  • Bean 对象初始化前,循环调用实现了 BeanPostProcessor 接口的预初始化方法(postProcessBeforeInitialization)。
  • Bean 对象初始化:顺序执行 @PostConstruct 注解方法、InitializingBean 接口方法、init-method 方法。
  • Bean 对象初始化后,循环调用实现了 BeanPostProcessor 接口的后初始化方法(postProcessAfterInitialization)。
  • 容器关闭时,执行 Bean 对象的销毁方法,顺序是:@PreDestroy 注解方法、DisposableBean 接口方法、destroy-method。

3.一句话概述

spring bean的生命周期主要会经过3个关键步骤,即实例化对象、给对象进行属性注入、对象初始化 ,只不过在进行对象初始化 之前或之后有可能会进行一些自定义的处理,比如对象实现了BeanNameWare接口,可以用来设置bean对象的名称,也比如对象实现了

BeanPostProcessor接口,就可以增加一些自定义的逻辑在该接口的两个方法中。当然对象初始化完成后,最后还可以增加对象的销毁方法,让对象在销毁时进行一些自定义的操作。

相关推荐
摇滚侠3 分钟前
SpringMVC 入门到实战 SpringMVC 的执行流程 96
java·后端·spring·maven·intellij-idea
唐青枫5 分钟前
Java Liquibase 实战指南:让数据库变更像代码一样可追踪
java
qq_422152579 分钟前
PDF 解密工具怎么选?2026 年文档密码移除方案与注意事项
java·前端·pdf
布朗克16818 分钟前
38 Spring Boot入门——自动配置、核心注解与Starter机制
java·spring boot·后端
程序员老申23 分钟前
外呼突然全挂了,追查 24 分钟后我发现了 etcd 最阴的一颗雷
后端·程序员
何以解忧,唯有..23 分钟前
Go语言变量的声明方式详解
开发语言·后端·golang
长栎24 分钟前
MyBatis 缓存为啥总是失效?装饰器模式套娃的代价
后端
bright_ye26 分钟前
setjmp & longjmp 深度详解 + 代码示例
后端
To_OC26 分钟前
我一直以为 Ajax 是个黑盒,直到我写了这 50 行代码
前端·后端·全栈
沪漂阿龙26 分钟前
LangChain 系列:Structured Output结构化输出与源码解析
java·人工智能·架构·langchain