03_Adaptive注解
2024-08-23 22:02:08
【Adaptive注解】
package com.alibaba.dubbo.common.extension; import com.alibaba.dubbo.common.URL; import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; /**
* 在{@link ExtensionLoader}生成Extension的Adaptive Instance时,为{@link ExtensionLoader}提供信息。
*/ @Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Adaptive { /**
* 从{@link URL}的Key名,对应的Value作为要Adapt成的Extension名。
* 如果{@link URL}这些Key都没有Value,使用 用 缺省的扩展(在接口的{@link SPI}中设定的值)。
* 比如,String[] {"key1", "key2"},表示先在URL上找key1的Value作为要Adapt成的Extension名;
* key1没有Value,则使用key2的Value作为要Adapt成的Extension名。
* key2没有Value,使用缺省的扩展。
* 如果没有设定缺省扩展,则方法调用会抛出{@link IllegalStateException}。
* 如果不设置则缺省使用Extension接口类名的点分隔小写字串。
* 即对于Extension接口{@code com.alibaba.dubbo.xxx.YyyInvokerWrapper}的缺省值为<code>String[] {"yyy.invoker.wrapper"}
*
*/
String[] value() default {}; }
【Adaptive分别作用在类或方法上】
作用在类上
作用在方法上
【@Adaptive注解在类上和方法上的区别】
1.注解在类上
代表人工实现编码,即实现了一个装饰类,例如ExtensionFactory
2.注解在方法上
代表自动生成和编译一个动态的adaptive类,例如:Protocol$Adaptive
最新文章
- iOS实现渐变色背景(两种方式实现)
- javascript 转盘抽奖代码和计数器代码
- db2look和db2move详解
- CentOS下通过yum安装svn及配置
- Activity 横竖屏切换
- LINQ 常见用法
- 各种 starter poms (启动器)
- 如何定位摄像机,使物体在屏幕上始终具有相同的像素宽度和高度?(threes)
- 统计Oracle数据库文件的大小
- OCP读书笔记(18) - 空间管理
- ue4中窗口打开web地址
- 各种 SVG 制作单选和多选框动画
- 201521123119《Java程序设计》第12周学习总结
- 如何搭建ftp的yum源
- Shell——数学计算
- 自己动手写Redis客户端- Redis协议(1)
- 关于VMware(虚拟机) 出现错误时处理办法
- ELK安装(ubuntu)
- centos7 制作yum源
- MySQL(二) MySQL基本操作