Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Dubbo SPI 是怎么加载实现的?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

Dubbo 用 @SPI 声明扩展点。扩展配置把短名称映射到实现类,ExtensionLoader 能按名字找到对应类,在需要时创建并缓存实例。

讲清原理

应用可在 META-INF/dubbo/ 下提供以接口全限定名命名的扩展配置。框架还支持通过 @Adaptive 按调用参数选择实现,通过 @Activate 在满足条件时加入某条链。

配置名称先选扩展,再按需构造实例
配置名称先选扩展,再按需构造实例

例子与易错点

自定义负载均衡策略注册名为 tenant-aware,引用选择该名称后才会走这个实现。写错配置文件名或策略名,框架无法找到预期实现。

延伸阅读 Dubbo 在哪些地方用了 SPI? · Dubbo SPI 与 Java ServiceLoader 有什么区别? · 扩展 Dubbo 的行为要改框架源码吗?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。