【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

最新文章

  1. iOS实现渐变色背景(两种方式实现)
  2. javascript 转盘抽奖代码和计数器代码
  3. db2look和db2move详解
  4. CentOS下通过yum安装svn及配置
  5. Activity 横竖屏切换
  6. LINQ 常见用法
  7. 各种 starter poms (启动器)
  8. 如何定位摄像机,使物体在屏幕上始终具有相同的像素宽度和高度?(threes)
  9. 统计Oracle数据库文件的大小
  10. OCP读书笔记(18) - 空间管理
  11. ue4中窗口打开web地址
  12. 各种 SVG 制作单选和多选框动画
  13. 201521123119《Java程序设计》第12周学习总结
  14. 如何搭建ftp的yum源
  15. Shell——数学计算
  16. 自己动手写Redis客户端- Redis协议(1)
  17. 关于VMware(虚拟机) 出现错误时处理办法
  18. ELK安装(ubuntu)
  19. centos7 制作yum源
  20. MySQL(二) MySQL基本操作

热门文章

  1. Compile Groovy/Spock with GMavenPlus
  2. 关于JAVA泛型中的通配符类型
  3. 2019年华南理工大学程序设计竞赛(春季赛)A NB群友
  4. 分享一下Ubuntu好用的源
  5. python创建目录并更改权限的代码
  6. Delphi XE TStringBuilder
  7. Rancher 1.6 版本 只能在 linux 下用
  8. C# GridView 导出Excel表
  9. [目录]ASP.NET web api开发实战
  10. 003-BootStrap完整模板