首页 > 其他分享 >SPI机制的简单示例?

SPI机制的简单示例?

时间:2023-04-22 19:46:56浏览次数:35  
标签:文件 示例 实现 接口 spi SPI 搜索 机制

我们现在需要使用一个内容搜索接口,搜索的实现可能是基于文件系统的搜索,也可能是基于数据库的搜索。

 

 

 

 

可以看到输出结果:文件搜索 hello world

如果在com.cainiao.ys.spi.learn.Search文件里写上两个实现类,那最后的输出结果就是两行了。

这就是因为ServiceLoader.load(Search.class)在加载某接口时,会去META-INF/services下找接口的全限定名文件,再根据里面的内容加载相应的实现类。

这就是spi的思想,接口的实现由provider实现,provider只用在提交的jar包里的META-INF/services下根据平台定义的接口新建文件,并添加进相应的实现类内容就好。


 

 

标签:文件,示例,实现,接口,spi,SPI,搜索,机制
From: https://www.cnblogs.com/cnetsa/p/17343754.html

相关文章

  • Java核心机制
    Java核心机制1.Java虚拟机1.JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据,内存,寄存器。2.对于不同的平台,有不同的虚拟机。3.Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。2.垃圾自动回收1.垃圾回收:不再使用的内存空间......
  • 设计模式-模板模式在Java中的使用示例-悍马模型制造示例
    场景设计模式-模板模式在Java中的使用示例:设计模式-模板模式在Java中的使用示上面整理了模板模式的使用示例,为加强理解特记录另一个使用示例,以下示例摘自设计模式之禅第二版。模板方法模式定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即......
  • Redis持久化机制导致服务自启动后恢复数据过长无法使用以及如何关闭
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓在上面搭建前后端分离的项目后,如果需要在windows服务上进行部署。若依前后端分离版本,Windows下使用Nginx代理的方式进行部署(全流程,图文教程):若依前后端分离版本,Wi......
  • 什么是SPI机制?
    SPI(ServiceProviderInterface),是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服......
  • 使用mybatisPlus修改数据-示例
    mapperimportcom.atguigu.yygh.model.hosp.HospitalSet;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;publicinterfaceHospitalSetMapperextendsBaseMapper<HospitalSet>{} serviceimportcom.atguigu.yygh.model.hosp.HospitalSet;impor......
  • PyTorch项目实战05——Tensor的广播机制
    1广播机制介绍矩阵运算,往往只能在两个矩阵维度相同或者相匹配时才能运算。比如加减法需要两个矩阵的维度相同,乘法需要前一个矩阵的列数与后一个矩阵的行数相等。当参与运算的两个维度不同也不匹配的矩阵进行运算时,该机制会对数组进行扩展,使数组的shape属性值一样,这样,就可以进行矢......
  • 2023-04-21:用go语言重写ffmpeg的metadata.c示例。
    2023-04-21:用go语言重写ffmpeg的metadata.c示例。答案2023-04-21:这段Go代码演示了如何使用ffmpeg-go库中的函数来读取多媒体文件元数据,包括视频、音频等信息。它的大体过程如下:设置环境变量以加载FFmpeg动态链接库这里将FFmpeg库中的各个动态链接库路径添加到环境变......
  • 第7章 异常机制
    7.1异常及体系结构7.1.1什么是异常异常指的是程序运行过程中出现的不期而至的各种状况,比如:文件找不到、网络连接失败、非法参数等。异常发生在程序的运行期间,它影响了正常的程序执行流程。7.1.2简单分类根据Java异常处理的工作原理分为检查异常最具代表的检查......
  • JVM垃圾回收机制之对象回收算法
    在前面的文章中,介绍了JVM内存模型分为:堆区、虚拟机栈、方法区、本地方法区和程序计数器,其中堆区是JVM中最大的一块内存区域,在Java中的所有对象实例都保存在此区域,它能被所有线程共享。在Java中还有一个重要的机制:GC(垃圾收集器),堆是GC管理的主要区域,本文会带大家了解GC机制。GC......
  • eclipse IDE 创建一个jar和引用,示例
     一创建一个jar方法①创建一个jave程序,NewJar ②创建一个jave类,【Pachage:sayHello  Name:TestClass】    ③创建类的属性和方法可通过如下三种方法自动添加注释:(1)输入“/**”并回车。(2)用快捷键Alt+Shift+J(先选中某个方法、类名或变量名)。(3)在右键菜单中选择......