类 SaTokenPluginHolder

java.lang.Object
cn.dev33.satoken.plugin.SaTokenPluginHolder

public class SaTokenPluginHolder extends Object
Sa-Token 插件管理器,管理所有插件的加载与卸载
从以下版本开始:
1.41.0
作者:
click33
  • 字段详细资料

    • instance

      public static SaTokenPluginHolder instance
      默认实例,非单例模式,可替换
    • isLoader

      public boolean isLoader
      是否已经加载过插件
    • spiDir

      public String spiDir
      SPI 文件所在目录名称
  • 构造器详细资料

    • SaTokenPluginHolder

      public SaTokenPluginHolder()
  • 方法详细资料

    • init

      public void init()
      初始化加载所有插件(多次调用只会执行一次)
    • loaderPlugins

      public void loaderPlugins()
      根据 SPI 机制加载所有插件

      加载所有 jar 下 /META-INF/satoken/ 目录下 cn.dev33.satoken.plugin.SaTokenPlugin 文件指定的实现类

    • _loaderPluginsBySpi

      protected <T> List<T> _loaderPluginsBySpi(Class<T> serviceInterface, String dirName)
      自定义 SPI 读取策略 (无状态函数)
      类型参数:
      T - /
      参数:
      serviceInterface - SPI 接口
      dirName - 目录名称
      返回:
      /
    • getPluginListCopy

      public List<SaTokenPlugin> getPluginListCopy()
      获取插件集合副本 (拷贝插件集合,而非每个插件实例)
      返回:
      /
    • isInstalledPlugin

      public <T extends SaTokenPlugin> boolean isInstalledPlugin(Class<T> pluginClass)
      判断是否已经安装了指定插件
      参数:
      pluginClass - 插件类型
      返回:
      /
    • getPlugin

      public <T extends SaTokenPlugin> T getPlugin(Class<T> pluginClass)
      获取指定类型的插件
      类型参数:
      T - /
      参数:
      pluginClass - /
      返回:
      /
    • _consumeHooks

      protected <T extends SaTokenPlugin> int _consumeHooks(List<SaTokenPluginHookModel<? extends SaTokenPlugin>> hooks, Class<T> pluginClass)
      消费指定集合的钩子函数,返回消费的数量
      类型参数:
      T - /
      参数:
      pluginClass - /
      hooks - /
    • installPlugin

      public SaTokenPluginHolder installPlugin(SaTokenPlugin plugin)
      安装指定插件
      参数:
      plugin - /
    • installPlugin

      public <T extends SaTokenPlugin> SaTokenPluginHolder installPlugin(Class<T> pluginClass)
      安装指定插件,根据插件类型
      参数:
      pluginClass - /
    • destroyPlugin

      public SaTokenPluginHolder destroyPlugin(SaTokenPlugin plugin)
      卸载指定插件
      参数:
      plugin - /
    • destroyPlugin

      public <T extends SaTokenPlugin> SaTokenPluginHolder destroyPlugin(Class<T> pluginClass)
      卸载指定插件,根据插件类型
      参数:
      pluginClass - /
    • onInstall

      public <T extends SaTokenPlugin> SaTokenPluginHolder onInstall(Class<T> listenerClass, SaTokenPluginHookFunction<T> executeFunction)
      注册指定插件的 [ Install 钩子 ],1、同插件支持多次注册。2、如果插件已经安装完毕,则抛出异常。3、注册 Install 钩子的插件默认安装行为将不再执行
      类型参数:
      T - /
      参数:
      listenerClass - /
      executeFunction - /
    • onBeforeInstall

      public <T extends SaTokenPlugin> SaTokenPluginHolder onBeforeInstall(Class<T> listenerClass, SaTokenPluginHookFunction<T> executeFunction)
      注册指定插件的 [ Install 前置钩子 ],1、同插件支持多次注册。2、如果插件已经安装完毕,则抛出异常
      类型参数:
      T - /
      参数:
      listenerClass - /
      executeFunction - /
    • onAfterInstall

      public <T extends SaTokenPlugin> SaTokenPluginHolder onAfterInstall(Class<T> listenerClass, SaTokenPluginHookFunction<T> executeFunction)
      注册指定插件的 [ Install 后置钩子 ],1、同插件支持多次注册。2、如果插件已经安装完毕,则立即执行该钩子函数
      类型参数:
      T - /
      参数:
      listenerClass - /
      executeFunction - /
    • onDestroy

      public <T extends SaTokenPlugin> SaTokenPluginHolder onDestroy(Class<T> listenerClass, SaTokenPluginHookFunction<T> executeFunction)
      注册指定插件的 [ Destroy 钩子 ],1、同插件支持多次注册。2、注册 Destroy 钩子的插件默认卸载行为将不再执行
      类型参数:
      T - /
      参数:
      listenerClass - /
      executeFunction - /
    • onBeforeDestroy

      public <T extends SaTokenPlugin> SaTokenPluginHolder onBeforeDestroy(Class<T> listenerClass, SaTokenPluginHookFunction<T> executeFunction)
      注册指定插件的 [ Destroy 前置钩子 ],同插件支持多次注册
      类型参数:
      T - /
      参数:
      listenerClass - /
      executeFunction - /
    • onAfterDestroy

      public <T extends SaTokenPlugin> SaTokenPluginHolder onAfterDestroy(Class<T> listenerClass, SaTokenPluginHookFunction<T> executeFunction)
      注册指定插件的 [ Destroy 后置钩子 ],同插件支持多次注册
      类型参数:
      T - /
      参数:
      listenerClass - /
      executeFunction - /