dubbo-SPI思想


SPI原理

dubbo 框架是建立的 SPI 机制上,在探寻 dubbo 框架源码前,需要先把 SPI 机制了解透彻。   1.java spi 机制 SPI 全称 Service Provider Interface,是 Java 提供的一套用来被第三方实现或 者扩展的 API,它可以用来启用框架扩展和替换组件。 可以看到,SPI 的本质,其实是帮助程序,为某个特定的接口寻找它的实现类。而且哪些实现类的会加载,是个动态过程(不是提前预定好的)。 有点类似 IOC 的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。所以 SPI 的核心思想就是解耦。 比较常见的例子:  JDBC更换配置就可以加载不同的驱动  SLF4J 加载不同提供商的日志实现类   通俗点理解,就是我们可以通过JDK某个方法拿到一个接口的所有实现类 2.jave spi的使用介绍  (1.首先创建一个接口  

 (2.为上述接口创建两个实现类,都实现上述接口中的方法,一个A实现类,一个B实现类。

 (3.在resources下穿件一个文件,文件名必须是上述接口的全路径名称,然后将两个实现类的全路径都配置到这个文件中

 (3.编写测试,使用今日主角ServiceLoader.load加载一个接口所有的实现类,并且调用对应实现类的方法,很easy吧

总结:

 我们通过jdk的方法,拿到了一个接口所有的实现类,在这个基础上其实我们可以做很多文章,平常工作的时候,肯定会碰见一个接口有很多实现的情况。

 相信大家比我厉害一眼就明白了,后续我接着把本文章补完善。