ClassPathXmlApplicationContext源码解析四

本文详细解析了Spring容器启动过程中的关键步骤,包括BeanPostProcessor的注册与使用、国际化配置初始化、事件广播器的设置等,并对一些核心方法进行了源码级解读。

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

本文引自我的个人博客: sunmingshuai.coding.me

我们回到refresh()方法 继续往下解读 下面这几个方法比较简洁 或者说简单 我们只是简单的列出 就不再作过多解读饿了

                // spring可扩展的另一个实现:BeanPostProcessor 在调用beanClass实例化前后或者调用initMethod方法的前后会调用接口方法
                // 较常见的硬编码的BPP:ApplicationContextAwareProcessor,ApplicationListenerDetector
                registerBeanPostProcessors(beanFactory);
                //国际化
                initMessageSource();
                //广播
                initApplicationEventMulticaster();
                //empty
                onRefresh();
                // 注册listener
                registerListeners();

registerBeanPostProcessors(beanFactory)方法是把BeanFactory中声明的BeanPostProcessor的实例加入到beanFactory中 注意此时的BeanPostProcessor并没有成形 还停留在BeanDefinition初级阶段 这个时候我们要通过beanFactory.getBean(name,requiredType)方法获取BeanPostProcessor实例 然后再加入到beanFactory

getBean(name,requiredtype)是个很复杂很重要的方法 后面我们会讲到

component-scan做了些什么:源码解读 文章最后介绍的一个方法registerComponents()有介绍到注册的一些处理注解的BPP
initApplicationEventMulticaster()方法用来注册一个广播器
onRefresh()方法留空 留给字类继承实现
registerListeners() 将相关listener加入到我们上面生成的applicationEventMulticaster

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值