Module bus.core

Class NormalSpiLoader

java.lang.Object
org.miaixz.bus.core.lang.loader.spi.NormalSpiLoader

public class NormalSpiLoader extends Object
SPI机制中的服务加载工具类,流程如下
     1、创建接口,并创建实现类
     2、ClassPath/META-INF/services下创建与接口全限定类名相同的文件
     3、文件内容填写实现类的全限定类名
 
  • Constructor Details

    • NormalSpiLoader

      public NormalSpiLoader()
  • Method Details

    • loadFirstAvailable

      public static <S> S loadFirstAvailable(Class<S> clazz)
      加载第一个可用服务,如果用户定义了多个接口实现类,只获取第一个不报错的服务
      Type Parameters:
      S - 服务类型
      Parameters:
      clazz - 服务接口
      Returns:
      第一个服务接口实现对象,无实现返回null
    • loadFirstAvailable

      public static <S> S loadFirstAvailable(ServiceLoader<S> serviceLoader)
      加载第一个可用服务,如果用户定义了多个接口实现类,只获取第一个不报错的服务
      Type Parameters:
      S - 服务类型
      Parameters:
      serviceLoader - ServiceLoader
      Returns:
      第一个服务接口实现对象,无实现返回null
    • load

      public static <T> ServiceLoader<T> load(Class<T> clazz)
      加载服务
      Type Parameters:
      T - 接口类型
      Parameters:
      clazz - 服务接口
      Returns:
      服务接口实现列表
    • load

      public static <T> ServiceLoader<T> load(Class<T> clazz, ClassLoader loader)
      加载服务
      Type Parameters:
      T - 接口类型
      Parameters:
      clazz - 服务接口
      loader - ClassLoader
      Returns:
      服务接口实现列表
    • loadList

      public static <T> ServiceLoader<T> loadList(Class<T> clazz)
      加载服务
      Type Parameters:
      T - 接口类型
      Parameters:
      clazz - 服务接口
      Returns:
      服务接口实现列表
    • loadList

      public static <T> ServiceLoader<T> loadList(Class<T> clazz, ClassLoader loader)
      加载服务
      Type Parameters:
      T - 接口类型
      Parameters:
      clazz - 服务接口
      loader - ClassLoader
      Returns:
      服务接口实现列表
    • loadList

      public static <T> List<T> loadList(boolean isLinked, Class<T> clazz)
      加载服务 并已list列表返回
      Type Parameters:
      T - 接口类型
      Parameters:
      clazz - 服务接口
      Returns:
      服务接口实现列表
    • loadList

      public static <T> List<T> loadList(boolean isLinked, Class<T> clazz, ClassLoader loader)
      加载服务 并已list列表返回
      Type Parameters:
      T - 接口类型
      Parameters:
      clazz - 服务接口
      loader - ClassLoader
      Returns:
      服务接口实现列表