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 区别的内容希望对大家有帮助。

相关推荐HOT
更多>>
为什么做因子分析?可以解决什么问题??
一、什么是因子分析?因子分析的起源是这样的,1904年英国的一个心理学家发现学生的英语、法语和古典语成绩非常有相关性,他认为这三门课程背后...详情>>
2023-10-14 23:59:00
文本分析有哪些阶段?
一、文本分析有哪些阶段?要实施文本分析,您需要遵循包含 4 个阶段的系统性流程。第 1 阶段 — 数据收集在此阶段,您从内部或外部资源收集文本...详情>>
2023-10-14 23:00:09
计算机网络可以做什么?
一、什么是计算机联网?计算机联网是指相互连接的计算设备,它们可以相互交换数据和共享资源。这些联网设备利用称为通信协议的规则系统,通过物...详情>>
2023-10-14 19:39:09
云存储有哪些类型?
一、云存储有哪些类型云存储主要有三种类型:对象存储、文件存储和数据块存储。每种类型都有自己的优势和对应的使用场景。1、对象存储组织必须...详情>>
2023-10-14 18:59:10