目录
Java.util.spi下提供了SPI机制,SPI机制(Service Provider Interface)源自服务提供者框架(Service Provider Framework),是一种将服务接口与服务实现分离以达到解耦、提升程序可扩展性的机制。Java SPI是基于接口编程+策略模式+约定配置文件组合实现的动态加载机制,能够很方便的为某个接口寻找服务实现的机制。
什么是spi
SPI 全称:Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,可以进行框架的扩展或者替换组件。面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候不用在程序里动态指明,这就需要一种服务发现机制。java spi就是提供这样的一个机制(为某个接口寻找服务实现的机制)。这有点类似IOC的思想,将装配的控制权移到了程序之外。这是一种JDK内置的一种服务发现的机制,用于制定一些规范,实际实现方式交给不同的服务厂商。