SPI是一种动态替换发现的机制,一种解耦非常优秀的思想。
 
  spi的工作原理: 就是ClassPath路径下的META-INF/services文件夹中, 以接口的全限定名来命名文件名,文件里面写该接口的实现。然后再资源加载的方式,读取文件的内容(接口实现的全限定名), 然后再去加载类。
spi可以很灵活的让接口和实现分离, 让api提供者只提供接口, 第三方来实现。
 
 
java的spi机制 -- ServiceLoader
spring中的spi机制 -- SpringFactoriesLoader
dubbo的spi机制 -- ExtensionLoader