Bean Post-Processor

Bean Post-Processor,可以理解为 "Bean创建过程后期的处理器"。它的整个工作区间,都处于Bean创建流程的后半段(实例化和属性注入之后)。

  • postProcess**Before**Initialization:在Bean创建后期的初始化之前进行处理。
  • postProcess**After**Initialization:在Bean创建后期的初始化之后进行处理

一个Bean的完整诞生过程:

  1. 实例化 (Instantiation)
  • new BeanClass()
  • 此时,我们得到了一个"空壳"对象,所有字段都是默认值(null, 0, false)。
  1. 属性注入 (Population)
  • 处理 @Autowired, @Value 等。
  • 把所有依赖的Bean和配置值都设置好。
  • 此时,Bean的"内在"已经完整了,但可能还没准备好对外服务。

--- BeanPostProcessor 的工作区间开始 ---

  1. 前置处理 (postProcessBeforeInitialization)
  • 这是 BeanPostProcessor 的第一次出手。
  • 它发生在这个阶段,是在Bean实例化和属性注入之后,但在自定义初始化逻辑之前。
  1. 初始化 (Initialization)
  • 调用 @PostConstruct 方法。
  • 调用 InitializingBean.afterPropertiesSet()。
  • 这是Bean自己的"岗前培训"。
  1. 后置处理 (postProcessAfterInitialization)
  • 这是 BeanPostProcessor 的第二次出手,也是最后一次。
  • 在Bean完成自己的初始化之后执行。

--- BeanPostProcessor 的工作区间结束 ---

相关推荐
你真的可爱呀37 分钟前
uniapp+vue3项目中的常见报错情况以及解决方法
前端·vue.js·uni-app
sg_knight2 小时前
Spring 框架中的 SseEmitter 使用详解
java·spring boot·后端·spring·spring cloud·sse·sseemitter
郑州光合科技余经理4 小时前
同城系统海外版:一站式多语种O2O系统源码
java·开发语言·git·mysql·uni-app·go·phpstorm
一只乔哇噻4 小时前
java后端工程师+AI大模型开发进修ing(研一版‖day60)
java·开发语言·人工智能·学习·语言模型
LNN20224 小时前
Linuxfb+Qt 输入设备踩坑记:解决 “节点存在却无法读取“ 问题
开发语言·qt
Dolphin_Home4 小时前
笔记:SpringBoot静态类调用Bean的2种方案(小白友好版)
java·spring boot·笔记
差点GDP4 小时前
模拟请求测试 Fake Rest API Test
前端·网络·json
foxsen_xia5 小时前
go(基础06)——结构体取代类
开发语言·算法·golang
MetaverseMan5 小时前
Java虚拟线程实战
java
巨人张5 小时前
C++火柴人跑酷
开发语言·c++