Java SPI中SPI机制的理解有哪些要点?

2026-04-30 09:401阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1911个文字,预计阅读时间需要8分钟。

Java SPI中SPI机制的理解有哪些要点?

前言:最近在面试时被问到SPI了,没有回答上来,主要也是自己的原因,把给带沟里去了。因为讲到了类加载器的双亲委派模型,后面就被问到有哪些是破坏了双亲委派模型的场景。

前言

最近在面试的时候被问到SPI了,没回答上来,主要也是自己的原因,把自己给带沟里去了,因为讲到了类加载器的双亲委派模型,后面就被问到了有哪些是破坏了双亲委派模型的场景,然后我就说到了SPI,JNDI,以及JDK9的模块化都破坏了双亲委派。
然后就被问,那你说说对Java中的SPI的理解吧。然后我就一脸懵逼了,之前只是知道它会破坏双亲委派,也知道是个怎么回事,但是并没有深入了解,那么这次我就好好的来总结一下这个知识吧。

什么是SPI

SPI全称Service Provider Interface,字面意思是提供服务的接口,再解释详细一下就是Java提供的一套用来被第三方实现或扩展的接口,实现了接口的动态扩展,让第三方的实现类能像插件一样嵌入到系统中。

咦。。。
这个解释感觉还是有点绕口。
那就说一下它的本质。

将接口的实现类的全限定名配置在文件中(文件名是接口的全限定名),由服务加载器读取配置文件,加载实现类。实现了运行时动态为接口替换实现类。

SPI示例

还是举例说明吧。
我们创建一个项目,然后创建一个module叫spi-interface。

阅读全文

本文共计1911个文字,预计阅读时间需要8分钟。

Java SPI中SPI机制的理解有哪些要点?

前言:最近在面试时被问到SPI了,没有回答上来,主要也是自己的原因,把给带沟里去了。因为讲到了类加载器的双亲委派模型,后面就被问到有哪些是破坏了双亲委派模型的场景。

前言

最近在面试的时候被问到SPI了,没回答上来,主要也是自己的原因,把自己给带沟里去了,因为讲到了类加载器的双亲委派模型,后面就被问到了有哪些是破坏了双亲委派模型的场景,然后我就说到了SPI,JNDI,以及JDK9的模块化都破坏了双亲委派。
然后就被问,那你说说对Java中的SPI的理解吧。然后我就一脸懵逼了,之前只是知道它会破坏双亲委派,也知道是个怎么回事,但是并没有深入了解,那么这次我就好好的来总结一下这个知识吧。

什么是SPI

SPI全称Service Provider Interface,字面意思是提供服务的接口,再解释详细一下就是Java提供的一套用来被第三方实现或扩展的接口,实现了接口的动态扩展,让第三方的实现类能像插件一样嵌入到系统中。

咦。。。
这个解释感觉还是有点绕口。
那就说一下它的本质。

将接口的实现类的全限定名配置在文件中(文件名是接口的全限定名),由服务加载器读取配置文件,加载实现类。实现了运行时动态为接口替换实现类。

SPI示例

还是举例说明吧。
我们创建一个项目,然后创建一个module叫spi-interface。

阅读全文