spring扩展点四:SmartInitializingSingleton的应用

本文详述了SmartInitializingSingleton在Spring中的作用,作为扩展点,它在所有bean初始化完成后调用afterSingletonsInstantiated()方法。文章通过实例演示了如何应用此接口,并指出其在SpringCloud整合Zookeeper时的应用。尽管应用场景不多见,但了解这一扩展点对于深入理解Spring框架具有重要意义。

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

前言

在这篇笔记中,主要记录SmartInitializingSingleton这个扩展点的应用,这个接口是在spring将所有的bean放入到spring容器之后,提供的一个扩展机制,在常用的框架中,我看到springcloud在将zk作为注册中心的时候,有用到这个扩展点

org.springframework.cloud.zookeeper.serviceregistry.ZookeeperServiceRegistry

在这里插入图片描述
目前还没有搞懂这个扩展点可以用来做什么,只是先记录一下原理和如何扩展,后续如果用到了,就再研究

原理

这个扩展点的调用逻辑是这样的

org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization
	org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons
/**
 * 在该方法中,主要完成了以下几个操作
 * 1.遍历所有的beanDefinitionName,完成合并bean的操作
 * 2.如果当前bean是单实例的、非懒加载的、非抽象bean,就调用bean的后置处理器 完成实例化的操作
 * 3.在所有bean都实例化完成之后,调用实现了SmartInitializingSingleton接口的bean对象࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值