美文网首页
Java SPI 服务机制

Java SPI 服务机制

作者: 冥泷 | 来源:发表于2016-10-20 22:41 被阅读0次

    SPI:Service Provider Interface,目的是提供接口,让第三方(服务厂商或扩展框架开发者)提供自定义实现的服务功能。例如,JDBC驱动,可以加载MySQL、Oracle、或者SQL Server等。

    SPI约定:

    1、在工程的META-INF/services/目录下,以接口的全限定名作为文件名,文件内容为实现接口的服务类;

    2、使用ServiceLoader动态加载META-INF/services下的实现类;

    3、接口的实现类需含无参构造函数;

    SPI 问题考虑

    1、如果在META-INF/services下有接口实现类,存在多个(例如jar包下面也有相应),系统如何处理?

    答:会全部加载,ServiceLoader在加载资源文件时,已经考虑了这个问题。

    2、SPI,和Dubbo等相比,区别在哪里?

    答:SPI的目的是提供给各种不同服务相同的访问接口。而Dubbo等微服务是将服务拆分形成功能相对独立的、维护性强的服务。两者出发点并不一致。

    相关文章

      网友评论

          本文标题:Java SPI 服务机制

          本文链接:https://www.haomeiwen.com/subject/fklquttx.html