`

什么是SPI

SPI 
阅读更多
我理解SPI就是一种“服务发现机制”

很多规范里,都既包括API,也包括SPI。区别在于,API用来给开发者用的,SPI是给服务提供者用的

比如说,开发连接池组件时,不知道运行时的JDBC Driver是谁提供的(也就是不知道实现类的类名),这时候就只依赖接口,然后在运行时通过某种服务发现机制,再加载具体的实现类

在JDCB规范里,JDBC的厂商需要提供DataSource这个接口的实现类,然后打成jar包,在META-INF/services/目录下创建javax.sql.DataSource文件,在其中写上自己的实现类的完整类名

这样调用API的人,就可以找到这个实现类了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics