本文介绍: SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要用于框架中开发,例如Dubbo、Spring、Common-Logging,JDBC等采用采用SPI机制,针对同一接口采用不同的实现提供给不同的用户,从而提高了框架的扩展性。本文详细的讲解了java和Spring的SPI机制,SPI技术将服务接口与服务实现进行分离实现解耦,从而提升程序的可扩展性。如有疑问,请随时反馈。
简介
SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要用于框架中开发,例如Dubbo、Spring、Common-Logging,JDBC等采用采用SPI机制,针对同一接口采用不同的实现提供给不同的用户,从而提高了框架的扩展性。
Java SPI实现
Java内置的SPI通过java.util.ServiceLoader类解析classPath和jar包的META-INF/services/目录 下的以接口全限定名命名的文件,并加载该文件中指定的接口实现类,以此完成调用。
示例说明
创建动态接口
实现类1
实现类2
在项目的source目录下新建META-INF/services/目录下,创建com.skywares.fw.juc.spi.VedioSPI文件。
相关测试
源码分析
Spring SPI
Spring 示例
定义接口
相关实现
相关测试类
输出结果
源码分析
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。