Dubbo SPI 和 Java SPI 区别?
一、Dubbo SPI 和 Java SPI 区别
Java SPI
核心类:java.util.ServiceLoader
服务是一组众所周知的接口和(通常是抽象的)类。服务提供者是服务的特定实现。提供者中的类通常实现接口,并子类化服务本身中定义的类。服务提供者可以以扩展的形式安装在Java平台的实现中,即放置在任何常见扩展目录中的jar文件。提供程序也可以通过将它们添加到应用程序的类路径或其他特定于平台的方法来提供。
通过在资源目录META-INF/services中放置一个提供程序配置文件来识别服务提供程序。文件名是服务类型的完全限定二进制名称。该文件包含具体提供程序类的完全限定二进制名的列表,每行一个。每个名称周围的空格和制表符以及空白行将被忽略。注释字符是’#’;在每一行中,名列前茅个注释字符之后的所有字符都将被忽略。文件必须用UTF-8编码。
Dubbo SPI
Dubbo重新实现了一套功能更强的SPI机制, 支持了AOP与依赖注入,并且利用缓存提高加载实现类的性能,同时支持实现类的灵活获取。
核心类:org.apache.dubbo.common.extension.ExtensionLoader
对 Dubbo 进行扩展,不需要改动 Dubbo 的源码
延迟加载,可以一次只加载自己想要加载的扩展实现。
增加了对扩展点 IOC 和 AOP 的支持,一个扩展点可以直接 setter 注入其
它扩展点。
Dubbo 的扩展机制能很好的支持第三方 IoC 容器,默认支持 Spring Bean。
延伸阅读:
二、扩展点
Dubbo作用灵活的框架,并不会强制所有用户都一定使用Dubbo提供的某些架构。例如注册中心(Registry),Dubbo提供了zk和redis,但是如果我们更倾向于其他的注册中心的话,我们可以替换掉Dubbo提供的注册中心。针对这种可被替换的技术实现点我们称之为扩展点,类似的扩展点有很多,例如Protocol,Filter,Loadbalance等等。
以上就是关于Dubbo SPI 和 Java SPI 区别的内容希望对大家有帮助。

猜你喜欢LIKE
相关推荐HOT
更多>>
Python开发过哪些知名网站你知道吗?
1、GoogleGoogle谷歌是一家位于美国的跨国科技企业,业务包括互联网搜索、云计算、广告技术等,同时开发并提供大量基于互联网的产品与服务,其...详情>>
2023-10-15 20:03:18
cookie、sessionStorage、localStorage的区别?
一、cookie、sessionStorage、localStorage的区别1、存储空间不同Cookie:每个 Cookie 的大小一般不能超过 4KB。sessionStorage:某些浏览器支...详情>>
2023-10-15 19:26:14
存储过程有什么优缺点,在什么情况下用存储过程?
一、存储过程优点1.运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了...详情>>
2023-10-15 18:50:49
JavaScript的URL对象都有哪些?
一、JavaScript的URL对象1、Windows对象Windows对象即浏览器窗口对象,是所有对象的拔尖对象,其使用频繁,在JavaScript中调用其方法和属性时可...详情>>
2023-10-15 18:37:51热门推荐
Python开发过哪些知名网站你知道吗?
沸Notion Database中怎么能实现多级标签?
热怎么实现一个简单的数据库系统?
热cookie、sessionStorage、localStorage的区别?
新requests模块的response.text与response.content有什么区别?
什么是OpenCV?
存储过程有什么优缺点,在什么情况下用存储过程?
JavaScript的URL对象都有哪些?
什么是IDE,IDE有什么用?
什么是Android单元测试?
操作系统是什么,操作系统概述?
怎么做成在线文档?
浏览器输入url按下回车后发生了什么?
为什么@State只能在结构体中工作?
技术干货






