Dubbo SPI 使用方法(二)- 扩展点自适应
3 月,跳不动了?>>> 开篇 上一篇讲到了 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 注解,该注解可以作用在两个地方: 扩展实现类上 在类上,表示该类是一个扩展类,不需要生成代理直接用即可; 扩展接口方法上