零. 简介
SPI 是 JDK 1.5 后提供的一种服务扩展接口。目前有不少框架用它来做服务的扩展,如 Dubbo。
服务通常指接口(下述例子的 Hello 接口)或者抽象类,服务提供方(下述例子的CHello、JavaHello 类)就是对这个接口或者抽象类的实现,然后按spi标准存放到资源路径META-INF/services目录下,文件的命名(下述例子的 com.wenniuwuren.spi.Hello)为该接口的全限定名,文件内容每一行写一个服务实现类,# 号后面为注释,该文件只能是 UTF-8 编码。再按 SPI 规范打包成 jar,再放到 classpath,没有一点代码的侵入性。