最近写完鱼皮的RPC项目后,打算整理出来一些编程技巧的模版。
有两种实现:1.ServiceLoader 2.SpiLoader
一、直接使用java.util下的ServiceLoader
首先在resource目录下创建 META-INF/services 目录,并且创一个名称为对应要实现的接口的包路径的空文件,文件中包含对应接口实现类的 完整类路径
ServiceLoader<Serializer> serviceLoader = ServiceLoader.load(Serialize.class);
for(Serializer service : serviceLoader){
....
}
二、使用自定义SPI实现
流程:
这一块实现可以具体看: