`

Dubbo之Adaptive注解用法

阅读更多

首先来介绍下Adaptive注解:

@Adaptive:为生成Adaptive实例提供参数,作用域在类或方法上;

    Adatpive,字面意思是个适配,但其实是个代理,它的意思是适配合适的对象处理请求。类似jdk的动态代理,因为dubbo底层会大量使用反射,出于性能考虑会默认使用javassist字节码编译生成一个adaptive拦截所有请求,然后由它基于策略动态委派合适的provider进行处理。
SPI接口会动态编译出一个adaptive,用于适配provider处理请求。用户可以自己实现一个adaptive,只需要对某个provider打上@adaptive即可,例如Dubbo自身的AdaptiveExtensionFactory类。
对于默认编译生成Adaptive的方案,需要使用@Adaptive声明接口上的哪些方法是adaptive方法,没有被声明的方法如果被请求会抛出异常非adaptive方法的异常

 

下面是基本的用法。

Adaptive注解(自适应扩展点的注解):

      第一种:根据默认的spi来获取接口

    

 

第二种:Adaptive注解

        String[] {"key1", "key2"}

根据key1或者key2来获取接口

第三种 Adaptive注解

如果不设置则缺省使用Extension接口类名的点分隔小写字串

    Ext3的缺省值为ext3

 

 

 

 

 

 

分享到:
评论

相关推荐

    dubbo基于注解的示例

    【标题】:“dubbo基于注解...你可以通过查看这些文件,结合上述解释,更深入地学习和理解Dubbo注解的使用方式。在实践中,可以运行这个示例来体验注解配置带来的便利性,并尝试修改注解参数,观察其对服务行为的影响。

    Dubbo源码(注释版)

    Dubbo的配置可以通过XML、API、注解三种方式进行,`ServiceConfig`和`ReferenceConfig`类分别代表服务提供者和服务消费者的配置。配置项包括服务接口、版本、分组、超时、重试次数等。 七、扩展性 Dubbo采用SPI...

    springboot整合dubbo 纯注解

    4. **实现服务提供者**:创建一个实现上述接口的类,并使用`@Service`注解标记,该注解会告诉Dubbo这是一个服务提供者。在注解中可以设置接口名、版本、分组等属性。 5. **消费服务**:在另一个SpringBoot应用中,...

    dubbo注解模式demo

    【标题】"dubbo注解模式demo"是一个基于SpringBoot框架,结合Zookeeper注册中心,利用Dubbo的注解方式实现服务消费和服务提供者样例项目。在这个项目中,我们将深入探讨Dubbo的注解模式如何与SpringBoot整合,以及它...

    DUBBO注解最简单DEMO

    在服务提供者端,DUBBO注解通常用于标记服务接口的实现类,例如使用`@Service`注解。此注解包含了许多配置属性,如version、group、interface等,允许开发者声明服务的基本信息。同时,服务方法可能还会使用`@...

    dubbo+zookeeper+spring 注解式开发demo

    在本项目"Dubbo + Zookeeper + Spring 注解式开发 demo"中,我们将深入探讨如何使用Dubbo、Zookeeper以及Spring框架进行分布式服务的注解式开发。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了服务发现、...

    springboot以注解的形式集成dubbo

    本篇文章将详细介绍如何在Spring Boot项目中通过注解方式集成Dubbo,实现生产者、消费者和服务接口的分离。 首先,我们需要在Spring Boot项目中添加Dubbo的相关依赖。在`pom.xml`文件中,引入Dubbo和Spring Boot的...

    dubbo使用例子 dubbo使用例子

    在本示例中,我们将探讨如何使用Dubbo进行基本的使用和配置。 首先,"dubbo使用例子"这个标题表明我们要讨论的是关于在实际项目中如何集成和使用Dubbo。Dubbo的核心功能包括服务注册与发现、远程调用、负载均衡、...

    dubbo示例代码dubbo-sample

    通过`dubbo-sample`代码,开发者不仅可以学习到Dubbo的基本用法,还能了解到服务治理的实践细节,从而更好地在实际项目中应用Dubbo,构建高效稳定的分布式系统。在实际开发中,可以根据需求选择合适的模块进行学习和...

    Dubbo + SpringMVC 4.3.1 + Hessian 注解方式Demo工程源码

    整合 Dubbo + SpringMvc 4.3.1 的服务器maven工程样例,使用注解方式定义服务及IOC装配,采用Hessian协议传输 三个工程,在 cnetAdmin 和 cnetBlu 中,要引用 cnetCommon 工程。

    Dubbo入门之hello world(简单测试版和使用注解加强版)

    用maven构建项目使用spring和multicast广播注册中心方式实现Dubbo入门之hello world(用maven构建项目使用spring和multicast广播注册中心方式实现Dubbo入门之hello world(简单测试版)文档说明以及源码

    dubbo注解配置demo

    基于springMVC框架的dubbo注解配置。需自己安装zookeeper,否则修改注册地址为multicast方式。两个web项目启动后,访问http://localhost:8080/dubboconsumer/DubboController/testDubboAnnotation.do 进行测试

    dubbo监控中心(dubbo-admin)使用与安装

    标题和描述中的知识点是关于“dubbo-admin”的安装与使用。Dubbo是由阿里巴巴开源的一个高性能Java RPC框架。在微服务架构中,服务之间的通信和管理变得十分关键。Dubbo-admin是Dubbo官方提供的监控中心,用于监控...

    dubbo 对外提供和使用接口方法

    Dubbo是一个高性能、轻量级的开源服务框架,旨在提供高性能和透明化的RPC远程服务调用方案,是微服务架构的重要组成部分之一。它提供了面向接口代理的高性能RPC远程调用、智能容错和恢复、以及丰富的服务治理能力等...

    dubbo资源 dubbo-admin dubbo demo

    "dubbo demo"则可能是用来展示如何使用Dubbo进行服务开发和集成的示例代码,对于初学者或者需要快速了解Dubbo的人来说非常有帮助。 在【标签】"dubbo"和"dubbo_admin"中,"dubbo"强调了这个资源与Dubbo框架紧密相关...

    dubbo入门示例源码

    本示例是针对初学者设计的,旨在帮助新手快速理解 Dubbo 的基本工作原理和使用方法。 在入门阶段,首先需要了解的是 Dubbo 的核心概念: 1. **服务提供者(Provider)**:提供服务的应用,通过注册中心将自己的...

    Dubbo之《尚硅谷》学习笔记.md

    Dubbo之《尚硅谷》学习笔记

    dubbo介绍和使用

    1. **高性能NIO通讯及多协议集成**:Dubbo 使用高效的 NIO 技术进行网络通信,并支持多种通信协议。 2. **服务动态寻址与路由**:支持基于服务地址的变化自动调整路由策略,确保服务请求能够准确地被定向到正确的...

    dubbo-zookeeper安装使用

    定义服务引用,使用`@Reference`注解标记接口,这样Dubbo会通过Zookeeper找到服务提供者并建立连接。在代码中,可以直接调用服务接口的方法来调用远程服务。 【源码运行】 压缩包内的`dubbo_server`和`dubbo_client...

Global site tag (gtag.js) - Google Analytics