java-spi
javaSPI机制service provider interface
12345// 通过遍历即可获取到对应的class,那么原理是什么呢?Iterator<ABC> iterator = ServiceLoader.load(ABC.class).iterator();while (iterator.hasNext()) { ABC next = iterator.next();}
原理java规定spi的配置文件都在这个目录META-INF/services/该目录下可以有多个文件,文件的名称必须以class全类名命名。通过ServiceLoader类,读取名字为spi类的全名称的文件内容为多行,一行为一个class的全类名。该class为spi的实现类。
ServiceLoader入口12345678910111213141516171819202122232425262728293031323334353637383940414243public final class ServiceLoader<S> implements ...