Java 中的SPI机制

SPI:全称是Service Provider Interface 服务提供接口

它是一种从java6开始引入的,是一种基于ClassLoader来发现并加载服务的机制

一个标准的SPI,由3个组件构成,分别是:

1、 Service 是一个公开的接口或抽象类,定义了一个抽象的功能模块

2、Service Provider  是Service 接口的一个实现类

3、ServiceLoader  是SPI机制中的核心组件,负责运行时发现并加载Service Provider

10分钟让你彻底明白Java SPI,附实例代码演示#安员外很有码_哔哩哔哩_bilibili

01、它的作用是什么?解决了什么样的问题?在这里说一句其实每一个技术都是这样 

02、如果实现一个SPI应用,需要怎么做

03、背后的设计思想是什么?我们得到什么启示

Java SPI在JDBC的应用

jdbc,全称是java DataBase Connectivtry

 JDBC就是使用java语言来访问数据库的一套API

 每个数据库厂商会提供各自的JDBC实现

Java SPI的三大要素  

1、文件路径:必须在JAR包中META-INF/services目录下

2、文件名称:Service接口全限定名

3、文件内容:Service实现类的全限定名。如果有多个实现类,那么每一个类在文件中单独占据一行。

作用:提供了一种组件发现和注册的方式,可以实现各种插件,或者灵活替换框架所使用的组件   

优点:基于面向接口编程,优雅的实现模块之间的解耦

设计思想:面向接口+配置文件+反射技术

应用场景:JDBC、SLF4J、SERVLET容器初始化  

SpringBoot自动配置和Java SPI机制有异曲同工之妙

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值