Package org.miaixz.bus.core.xyz
Class SPIKit
java.lang.Object
org.miaixz.bus.core.xyz.SPIKit
服务提供接口SPI(Service Provider interface)相关类
SPI机制中的服务加载工具类,流程如下
1、创建接口,并创建实现类
2、ClassPath/META-INF/services下创建与接口全限定类名相同的文件
3、文件内容填写实现类的全限定类名
相关介绍见:https://www.jianshu.com/p/3a3edbcd8f24- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <S> SloadFirstAvailable(Class<S> clazz) 加载第一个可用服务,如果用户定义了多个接口实现类,只获取第一个不报错的服务static <S> SloadFirstAvailable(ServiceLoader<S> serviceLoader) 加载第一个可用服务,如果用户定义了多个接口实现类,只获取第一个不报错的服务static <T> ServiceLoader<T> 加载服务static <T> ServiceLoader<T> loadList(Class<T> clazz, ClassLoader loader) 加载服务
-
Constructor Details
-
SPIKit
public SPIKit()
-
-
Method Details
-
loadFirstAvailable
加载第一个可用服务,如果用户定义了多个接口实现类,只获取第一个不报错的服务- Type Parameters:
S- 服务类型- Parameters:
clazz- 服务接口- Returns:
- 第一个服务接口实现对象,无实现返回
null
-
loadFirstAvailable
加载第一个可用服务,如果用户定义了多个接口实现类,只获取第一个不报错的服务- Type Parameters:
S- 服务类型- Parameters:
serviceLoader-ServiceLoader- Returns:
- 第一个服务接口实现对象,无实现返回
null
-
loadList
加载服务- Type Parameters:
T- 接口类型- Parameters:
clazz- 服务接口- Returns:
- 服务接口实现列表
-
loadList
加载服务- Type Parameters:
T- 接口类型- Parameters:
clazz- 服务接口loader-ClassLoader- Returns:
- 服务接口实现列表
-