Java SPI 机制,「可插拔」的奥义所在

本文介绍了Java的SPI(Service Provider Interface)机制,它是一种服务发现和加载的机制,用于实现框架组件的扩展。文章首先解释了SPI的概念,对比了SPI与API的区别,并探讨了类加载机制,特别是双亲委派模型。接着,文章通过实例展示了SPI的使用方法和实现原理,最后讨论了Spring SPI与JDK SPI的区别,并指出SPI在各种框架如Spring、Dubbo中的应用。通过学习SPI,开发者可以更好地实现模块化的可插拔系统。
摘要由CSDN通过智能技术生成

大家好,我是小菜。 一个希望能够成为 吹着牛X谈架构 的男人!如果你也想成为我想成为的人,不然点个关注做个伴,让小菜不再孤单!

本文主要介绍 SPI 机制

如有需要,可以参考

如有帮助,不忘 点赞

微信公众号已开启,菜农曰,没关注的同学们记得关注哦!

我们上篇文章讲到了 Java 中 Agent 用法,不少小伙伴都觉得该方式比较偏门,平常开发不常用(几乎没用)。其实不然,不常用是跟项目挂钩,项目不常用不代表该方法机制不常用,因此很多时候我们学习不能坐井观天,认为项目中没用到就可以不学,跟着项目成长往往不能成长~!

上篇跳转入口:Java 高级用法,写个代理侵入你?

那么这篇我们将继续讲 Java 中的另一个知识点,也就是 SPI 机制,乍听感觉依然陌生,这时可别再打退堂鼓!往下看你就会发现原来平时开发中经常看到!

一、SPI

我们这篇文章以问题作为导向,用问题来驱动学习,小菜先抛出几个问题,下面将针对这几个问题进行解释并扩展

  • 什么是 SPI ?
  • SPI 和 API 的区别?
  • 平常中有使用到 SPI 吗?

1、什么是 SPI

SPI 是三个单词的缩写 Service Provider Interface,字面意思:服务提供接口。它是 Java 提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。具体作用便是为这些被扩展的 API 寻找服务实现。

而Java SPI 便是 JDK 内置的一种服务提供发现机制,常用于创建可扩展、可替换组件的应用程序,是java中模块化插件化的关键。

这里我们提到了两个概念,分别是 模块化插件化。模块化很好理解,就是将一个项目分成多个模块,模块间可能存在相互依赖(也就是通过 maven 的方式),有使用微服务开发的同学就毫不陌生了,如果没有使用微服务开发也不打紧,单体项目中为了界定 control,service,repository层,也会将每个领域单独提取成模块,而不是以目录的方式~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值