SPI的全名为Service Provider Interface,服务发现机制,为某个接口寻找服务实现的机制
通过java.util.ServiceLoader.load()方法来加载某个接口实现,或服务。
配置文件需要放置在PREFIX = “META-INF/services/”(ServiceLoader默认)文件夹下,以接口类的包路径为文件名称,接口类的实现类为内容。如果是springboot,在resources资源目录下新建META-INF文件夹。
主要实现代码是java.util.ServiceLoader.LazyIterator#hasNext,检查配置是否正确,有没有类和对应的服务,
而java.util.ServiceLoader.LazyIterator#next这个方法里提供了服务实例化和类类型强转的操作
java.lang.Class#isInstance判定指定的 Object 是否与此 Class 所表示的对象赋值兼容。
java的spi
最新推荐文章于 2024-10-29 22:08:15 发布