我是靠谱客的博主 自觉故事,最近开发中收集的这篇文章主要介绍Java SPI深入理解与自定义扩展SPI,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

SPI(service provider interface)即服务提供者接口,通俗来讲,提供方只需要给定接口的命名,入参及返回类型,具体的实现可以支持默认实现或让被调用方自己实现。SPI机制是JDK内置的一种服务发现,将服务接口与服务实现分离以达到解耦、大大提升了程序可扩展性的机制。引入服务提供者就是引入了SPI接口的实现者,通过本地的注册发现获取到具体的实现类,轻松可插拔SPI实现了动态加载和插件化。

API 与 SPI差异

API(Application Provide Interface)即应用提供接口,即应用提供接口,用户无需关心底层实现,与SPI正好相反,SPI需要被调用方自定义实现接口逻辑。

Java SPI的应用

我们熟知的经典SPI应用场景:1. mysql-connector driver的实现;2. 日志门面类接口的实现;3. spring中的自动装配等场景。主要步骤:

  1. 服务提供方定义接口
  2. 如果需要默认实现的话,在服务提供方项目resource下新建META-INF/services目录,反之在被调用放新建类似目录
  3. 在该目录下新建一个以接口全限定名为名称的文件
  4. 将接口的默认实现类全限定名写进文件中
  • 服务提供方定义接口
package com.example.zhangxing.hellospringbootstarter.spi;

最后

以上就是自觉故事为你收集整理的Java SPI深入理解与自定义扩展SPI的全部内容,希望文章能够帮你解决Java SPI深入理解与自定义扩展SPI所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部