深入理解SPI机制,SPI作用
Yyds干货库存
专长:全栈工程师、爬虫、ACM算法
微信官方账号:浅谈知识
SPI机制的总结是什么?
这次全给他带走。
食物来了。
SPI是什么?SPI(服务提供者接口)是jdk中的服务发现机制。与API相比,SPI是一种动态替换发现机制,采用解耦的方法。
SPI通过将API与实现分离来实现动态解耦。
调用者-API接口-接口的实现。
优势:
由于采用了动态思维和解耦的方法,第三方服务模块的组装控制逻辑与调用方的逻辑业务代码分离,应用程序根据自身的业务情况启动第三方实现的服务模块。
缺点:
因为在加载服务接口时,接口的所有实现类都会被加载和实例化。如果不想用某些类,master类也被加载实例化,会造成资源浪费,需要遍历找到需要使用的类。
SPI在JDK的应用:
首先,创建META-INF/services文件夹,
其次,在services下创建一个名为api interface的全量文件。
最后,在创建的api接口文件中填入第三方实现类的全名。
SPI应用场景的常见Mysql依赖关系:
一般我们只需要配置好url,用户名,密码,然后就可以使用了。但是如何选择mysql驱动呢?
主要原因是mysql驱动包的META-INF/services文件夹下的java.sql.Driver文件有以下实现类的类全名。
com.mysql.jdbc.Driver
com . MySQL . fabric . JDBC . fabric MySQL driver
默认为第一种。JDK主要使用ServiceLoader。
Spring中使用的类是SpringFactoriesLoader,在org . Spring framework . core . io . support包中。
两者的区别:
不同的道路。meta-INF/spring.factors中总结了spring的配置,以上是对SPI的简单理解。希望你能理解。
版权归作者所有:来自博客的原创作品,转载授权请联系作者,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。