dubbo和spring的整合

本文解析了Dubbo 2.7.8版本中如何通过SPI自动整合Spring容器,重点介绍了`Main`方法中的关键步骤,从`dubbo.container`配置到`SpringContainer`的启动过程。

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

本章先简单写下dubbo在启动时是怎么同时整合spring容器的
首先dubbo的启动是在:org.apache.dubbo.container.Main#main
在这里插入图片描述
可以看到main方法中首先是肯定没有入参的,所以会去加载

public static final String CONTAINER_KEY = "dubbo.container";

这个key对应的配置,然后在dubbo的2.7.8版本中没有这个配置,所以他会使用LOADER.getDefaultExtensionName()的默认值,那么LOADER这个东西其实就是前面分析SPI的时候了解过的,其实是org.apache.dubbo.container.Container的扩展类,那么LOADER.getDefaultExtensionName()肯定就是Container上面的注解@SPI("spring")的默认值spring了,这个不理解的可以去看看前面讲的dubbo的SPI
那么最终获取的config值其实就是spring,那么在下面LOADER.getExtension(args[i])这个代码执行的结果肯定就是Container接口的spring实现了,其实就是:在这里插入图片描述
那么找到这个实现之后就很明显了,回到Main方法里面,在后面很明显的调用了container.start(),其实就是调用的org.apache.dubbo.container.spring.SpringContainer#start,这里就是dubbo整合spring的开始,这里的其实就是spring容器启动的相关知识了,可以去看我以前的一篇spring容器启动的文章,实际就是spring容器的启动

本篇先写到这 其他的后面再补

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值