老生谈spring(十四):BeanFactoryPostProcessor

本文深入探讨Spring的bean创建过程,重点关注BeanFactoryPostProcessor接口的使用。通过实例解析,展示了如何利用该接口扩展DefaultListableBeanFactory,将非扫描路径的类B注册到容器中,实现从Spring中获取B的bean对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老生谈spring(十四):BeanFactoryPostProcessor

序言:前面已经详细地讲解了obtainFreshBeanFactory方法,这个方法把xml文件解析为BeanDefinition然后逐个注册到beanDefinitionMap容器。接下来给大家讲解spring bean的创建过程,虽然这个过程非常长,也会分很多章节进行逐步讲解,但还是会尽量地把这个过程清晰完整地展示给大家。

1、首先给大家理清一下spring启动的整个流程思路(refresh):

1)obtainFreshBeanFactory创建DefaultListableBeanFactory容器
2)prepareBeanFactory会向容器中注册spring内部的postProcessBean以及环境变量
3)postProcessBeanFactory提供一个方法供子类对DefaultListableBeanFactory容器进行修改
4)invokeBeanFactoryPostProcessors则是以BeanFactoryPostProcessor的方式对DefaultListableBeanFactory进行修改扩展
5)registerBeanPostProcessors则是注册BeanPostProcessor
6)initApplicationEventMulticaster用于发布事件
7)registerListeners注册事件监听器
8)finishBeanFactoryInitialization真正对bean进行实例化创建
9)finishRefresh启动后的一些收尾工作,如清理一些缓存、初始化lifecycle processor以及发布启动完成的事件

2、本节简单给大家介绍怎么通过BeanFactoryPostProcessor对spring容器DefaultListableBeanFactory进行修改扩展。首先创建一个B类,这个类放在spring默认不会扫描的位置:

public 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值