本文主要是介绍Dubbo SPI之自适应扩展机制 @Adaptive,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上一篇介绍了 Dubbo SPI 的基本实现,这篇就介绍下 Dubbo SPI 的自适应扩展机制,对应注解 @Adaptive。
介绍
@Adaptive 定义如下:
public @interface Adaptive {/*** parameter names in URL*/String[] value() default {};}
value 是个字符数组,通过该属性从 URL 中获取扩展名,来决定使用哪个扩展。分为几种情况:
1.设置了 value,且从 URL 中找到了对应的扩展名,则使用该扩展;
2.设置了 value,但从 URL 中找不到扩展名,则使用默认的扩展,即 @SPI 中配置的 value,还是找不到则抛出异常;
3.未设置 value,则根据接口名生成 value,比如接口 YyyInvokerWrapper 生成 value = “yyy.invoker.wrapper”。
定义了 @Adaptive 注解的方法,参数列表中一定要有类型为 URL 的参数。
用法
按照 有无 @Adaptive 注解、注解设置不同 value,建立测试接口:
@SPI(value = "spi")
public interface SpiTest {String getName(
这篇关于Dubbo SPI之自适应扩展机制 @Adaptive的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!