Annotation Interface SPI


@Documented @Target(TYPE) @Retention(RUNTIME) public @interface SPI
启用框架扩展和替换组件,服务提供发现机制, 实现方制定接口并完成对接口的实现
   1.支持自定义实现类为单例/多例
   2.支持设置默认的实现类
   3.支持实现类order排序
   4.支持实现类定义特征属性category,用于区分多维度的不同类别
   5.支持根据category属性值来搜索实现类
   6.支持自动扫描实现类
   7.支持手动添加实现类
   8.支持获取所有实现类
   9.支持只创建所需实现类,解决JDK原生的全量方式
   10.支持自定义ClassLoader来加载class

 
Since:
Java 17+
Author:
Kimi Liu
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    声明每次获取实现类时是否需要创建 新对象,也就是说,是否为单例对象
    默认实现ID
  • Element Details

    • value

      String value
      默认实现ID
      Returns:
      标识
      Default:
      ""
    • single

      boolean single
      声明每次获取实现类时是否需要创建 新对象,也就是说,是否为单例对象
      Returns:
      是否单例
      Default:
      false