image

编辑人: 桃花下浅酌

calendar2025-05-10

message7

visits792

Java的SPI机制

分析&回答

SPI 全称为 Service Provider Interface,是一种服务发现机制;SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类

SPI 机制的约定:

  • 在META-INF/services/目录中创建以接口全限定名命名的文件该文件内容为Api具体实现类的全限定名
  • 使用ServiceLoader类动态加载META-INF中的实现类
  • 如SPI的实现类为Jar则需要放在主程序classPath中
  • Api具体实现类必须有一个不带参数的构造方法

image-1691385068630

反思&扩展

很多人会同时想到 Dubbo 的 SPI机制,但Dubbo 并非使用 Java 原生的 SPI 机制,而是对其进行了增强,使其能够更好的满足需求。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:Java的SPI机制

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share