Dubbo SPI 使用方法(二)- 扩展点自适应

开篇

上一篇讲到了 Dubbo SPI 使用方法(1) - 扩展点自动包装
本文接着讲 Dubbo SPI - 扩展点自适应。

正文

大纲

  • 扩展点自适应介绍
  • @Adaptive 注解使用方法
    • 作用在类上
    • 作用在方法上
1. 扩展点自适应

ExtensionLoader 注入的依赖扩展点是一个 Adaptive 实例,直到扩展点方法执行时才决定调用是哪一个扩展点实现。

Dubbo 使用 URL 对象(包含了Key-Value)传递配置信息。

扩展点方法调用会有 URL 参数(或是参数有URL成员)这样依赖的扩展点也可以从URL拿到配置信息,所有的扩展点自己定好配置的 Key 后,配置信息从 URL 上从最外层传入。URL在配置传递上即是一条总线。

上面摘自官网的一段介绍。

划重点:

  • 扩展方法中有 URL 参数

    也可以是包含 URL 成员的参数

  • 直到扩展点方法执行时,才决定调用哪个扩展点实现

    扩展点自动包装的区别

  • 通过 URL 传递配置信息

    通过 URL 中的参数,决定调用哪个扩展类实现

如果还是不好理解,就继续看下面的案例。

2. @Adaptive 注解

要想实现 扩展点自适应,需要借助 @Adaptive注解,该注解可以作用在两个地方:

  • 扩展实现类上

在类上,表示该类是一个扩展类,不需要生成代理直接用即可;

  • 扩展接口方法上

在方法上则表示该方法需生成代理, 此时就需要用到上面提到的 URL 参数

2.1 作用在扩展实现类上

这个相对比较简单,没什么特别的地方,上面也有提到,当 @Adaptive作用在类上,就表示该类是一个扩展类。

再说的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值