深入理解SPI机制,SPI作用

  深入理解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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: