S - 服务类型public class ListServiceLoader<S> extends AbsServiceLoader<S>
ServiceLoader服务文件默认位于"META-INF/services/"下,文件名为服务接口类全名。内容类似于:
# 我是注释
hutool.service.Service1
hutool.service.Service2
通过调用getService(int)方法,传入序号,即可获取对应服务。
charset, classLoader, pathPrefix, serviceClass| Constructor and Description |
|---|
ListServiceLoader(String pathPrefix,
Class<S> serviceClass,
ClassLoader classLoader,
Charset charset)
构造
|
| Modifier and Type | Method and Description |
|---|---|
S |
getService(int index)
获取指定序号对应的服务,使用缓存,多次调用只返回相同的服务对象
|
S |
getService(String serviceName)
获取指定名称对应的服务
|
Class<S> |
getServiceClass(int index)
获取指定服务的实现类
|
Class<S> |
getServiceClass(String serviceName)
获取指定服务的实现类
|
List<String> |
getServiceNames()
获取服务名称列表
|
Iterator<S> |
iterator() |
void |
load()
加载服务
|
static <S> ListServiceLoader<S> |
of(Class<S> serviceClass)
构建KVServiceLoader
|
static <S> ListServiceLoader<S> |
of(Class<S> serviceClass,
ClassLoader classLoader)
构建KVServiceLoader
|
static <S> ListServiceLoader<S> |
of(String pathPrefix,
Class<S> serviceClass,
ClassLoader classLoader)
构建KVServiceLoader
|
int |
size()
服务总数
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEach, spliteratorpublic ListServiceLoader(String pathPrefix, Class<S> serviceClass, ClassLoader classLoader, Charset charset)
pathPrefix - 路径前缀serviceClass - 服务名称classLoader - 自定义类加载器, null表示使用默认当前的类加载器charset - 编码,默认UTF-8public static <S> ListServiceLoader<S> of(Class<S> serviceClass)
S - 服务类型serviceClass - 服务名称public static <S> ListServiceLoader<S> of(Class<S> serviceClass, ClassLoader classLoader)
S - 服务类型serviceClass - 服务名称classLoader - 自定义类加载器, null表示使用默认当前的类加载器public static <S> ListServiceLoader<S> of(String pathPrefix, Class<S> serviceClass, ClassLoader classLoader)
S - 服务类型pathPrefix - 路径前缀serviceClass - 服务名称classLoader - 自定义类加载器, null表示使用默认当前的类加载器public void load()
ServiceLoaderpublic int size()
ServiceLoaderpublic List<String> getServiceNames()
ServiceLoaderpublic Class<S> getServiceClass(int index)
index - 服务名称public Class<S> getServiceClass(String serviceName)
ServiceLoaderserviceName - 服务名称public S getService(int index)
index - 服务名称public S getService(String serviceName)
ServiceLoaderserviceName - 服务名称Copyright © 2025. All rights reserved.