| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Dubbo的适配器原理、动态编译原理 -> 正文阅读 |
|
[Java知识库]Dubbo的适配器原理、动态编译原理 |
适配器原理Dubbo 为 每个功能点 提供了 一个SPI扩展接口,Dubbo框架 在使用 扩展点功能的时候 是对 接口进行依赖的,而一个扩展接口 对应了 一系列的扩展实现类 那么如何选择 使用哪一个 扩展接口的实现类呢 首先看看什么是适配器模式,比如Dubbo提供的扩展接口Protocol,其定义如下
Dubbo会使用 动态编译技术 为接口 Protocol 生成一个 适配器类Protocol$Adaptive的对象实例
需要注意的是,在Dubbo中URL是一个核心概念,Dubbo框架把所需的参数都拼接到了URL对象里 这里假设代码2传递的协议类型为Dubbo,则说明 使用 增强SPI 返回 扩展接口Protocol 的 Dubbo实现,即返回了DubboProtocol的实例 总结一下就是,适配器类Protocol$Adaptive会根据传递的协议参数的不同,加载不同的Protocol的SPI实现 其实在Dubbo框架中,框架 会给每个SPI扩展接口 动态生成一个 对应的 适配器类,并根据 参数 来使用 增强SPI 以选择 不同的SPI实现 动态编译原理在Dubbo框架中 框架 会给 每个SPI扩展接口 动态生成 一个 对应的 适配器类
Dubbo提供Compiler的实现有JavassistCompiler(默认实现)和JdkCompiler两种 从 Dubbo框架 如何使用 动态编译 生成扩展接口 对应的 适配器类 入手 代码2 使用 增强SPI 选择 扩展接口Compiler的实现,这里默认为JavassistCompiler 总结一下就是,Dubbo框架 会为 每个扩展接口 生成 其对应的 适配器类的源码 具体相关源码可见Dubbo-SPI(四)-@Adaptive注解 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:14:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |