念旧。
| 2024-05-20 |
后端相关
Spring 全家桶
Java
阿里一面:说一说Java、Spring、Dubbo三者SPI机制的原理和区别
今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。 其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是简单地介绍了一下Java、Spring的SPI机制,并没有进行深入,所以本篇就来深入聊一聊这三者的原理和区别。 什么是SPI SPI全称为 Service Provider Interface ,是一种动态替换发现的机制,一种解耦非常优秀的思想,SPI可以很灵活的让接口和实现分离,让api提供者只提供接口,第三方来实现,然后可以使用配置文件的方式来实现替换或者扩展,在框架中比较常见,提高框架的可扩展性。 简单来说SPI是一种非常优秀的设计思想,它的核心就是解耦、方便扩展。 Java SPI机制--ServiceLoader ServiceLoader是Java提供的一种简单的SPI机制的实现,Java的SPI实现约定了以下两件事: 文件必须放在 META-INF/services/ 目录底下 文件名必须为接口的全限定名,内容为接口实现的全限定名 这样就能够通过Service...
![]()