• 首页
  • 产品中心
    • 数式Oinone四大产品

      低代码开发平台无代码开发平台集成开发平台AI大模型开发
    • 数式Oinone体系能力

      用户与组织权限管理文件管理消息中心国际化业务审计
    • 数式Oinone核心产品特性

      低无一体面向软件公司场景无限制应用级扩容可分可合
  • 服务中心
    • 客户服务

      预约演示方案咨询私有部署找人定制
    • 开发者

      问答下载
    • Oinone学院

      社区学习

    《精讲面向软件公司的低代码平台——以Oinone为例》

  • 合作伙伴
    渠道申请伙伴名录专家库
  • 关于数式
0571-88757863

通用扩展点与平台SPI清单(Common Extension Points And SPI List)


一、SPI 机制

(一)Pamirs SPI 框架

整合三种服务发现机制,支持组件动态扩展:

  • 注解规则:
    • 接口通过@SPI指定默认扩展名(默认为 "pamirs")和加载工厂
    • 实现类通过@SPI.Service设置扩展名(Spring SPI 默认 Bean 名称,Java SPI 为全类名)
    • @Order/@Priority定义扩展优先级

(二)配置方式

1、Java SPI

  • 接口:public interface DemoApi { List<String> demo(); }
  • 实现类:@Order(10) public class DemoApiImpl implements DemoApi { ... }
  • 配置文件:META-INF/services/接口全类名 写入实现类全路径

2、Annotation SPI

  • 接口:@SPI("ext1") public interface DemoApi { ... }
  • 实现类:@SPI.Service("ext1") @Order(10) public class DemoApiImpl implements DemoApi { ... }

3、Spring SPI

  • 实现类:@Component("ext1") @Order(10) public class DemoApiImpl implements DemoApi { ... }

4、调用方式

// 指定扩展名调用
DemoApi ext = ExtensionServiceLoader.getExtension(DemoApi.class, "ext1");

// 按优先级获取列表
List<DemoApi> spis = ExtensionServiceLoader.getExtensionLoader(DemoApi.class).getOrderedExtensions();

// 快捷方式(Spider工具类)
DemoApi ext = Spider.getExtension(DemoApi.class, "ext1");

二、系统扩展点

(一)框架层

扩展点实现位置SPI接口
Spring类型转换器*否SpringTypeConverterRegister
#register
SPI加载器工厂*是ServiceLoaderFactory
SPI路径设置*是SpiClassPathApi

(二)元数据扫描

扩展点实现位置SPI接口
元数据注解转换器*否ModelConverter
元数据模型签名器*否ModelSigner
元数据注解转换器白名单yaml:pamirs.configure.converter.annotation否ModelConverter接口实现类名
元数据模型签名器白名单yaml:pamirs.configure.signer否ModelSigner接口实现类名
注解转化器处理的元模型的扫描路径配置yaml:pamirs.meta.meta-packages否默认:
pro.shushi.pamirs.meta.domain
pro.shushi.pamirs.boot.base.model

(三)元数据计算

扩展点实现位置SPI接口
模型编码接口*是ModelModelApi
模型运算接口*是ModelComputeApi
模型校验接口*是ModelCheckApi
模型指令接口*是ModelDirectiveBatchApi
ORM转换接口*是OrmApi
类型系统接口*是TypeProcessor
继承处理扩展逻辑*是InheritedExtendProcessor
模型计算扩展逻辑*是ModelExtendComputer
字段计算扩展逻辑*是FieldExtendComputer
元数据计算扩展逻辑*是MetaDataExtendComputer

(四)API层

扩展点实现位置SPI接口
请求上下文扩展点*是SessionPrepareApi
拦截器构建扩展点*是InstrumentationApi
动作绑定扩展点*是ActionBinderApi
数据加载器注册扩展点*是DataLoaderRegistryApi

(五)FaaS层

扩展点实现位置SPI接口
组装表达式上下文*是SessionContextApi
商业函数扩展点*是BusinessFunctionsApi
上下文函数扩展点*是ContextFunctionsApi
表达式可执行函数黑白名单*是FaasScriptAllowListApi

(六)ORM层

扩展点实现位置SPI接口
前端字段处理扩展逻辑*是FrontEndFieldExtendConverter
前端字段计算*否FieldValueComputer
后端字段处理扩展逻辑*是BackEndFieldExtendConverter
字段序列化api*否Serializer

(七)持久层

扩展点实现位置SPI接口
数据源路由pamirs-boot-*
yaml:pamirs.mapper.data-source-route-service
是DataSourceRouteService#route
数据框架的统一key前缀服务*是DataApiKeyService
动态数据源路由自定义参数pamirs-boot-*
yaml:pamirs.mapper.dynamic-ds-key-computer
是DynamicDsKeyComputer
数据表名计算自定义参数pamirs-boot-*
yaml:pamirs.mapper.table-name-computer
是TableNameComputer#context
获取逻辑字段定义pamirs-connectors-data-*
**yaml:pamirs.mapper.**logic-column-fetcher
是LogicColumnFetcher
#fetchLogicColumnDefinitions
获取逻辑字段pamirs-connectors-data-*
**yaml:pamirs.mapper.**logic-column-fetcher
是LogicColumnFetcher
#fetchLogicColumns
通用mapper*否PamirsMapper
编辑此页
最近更新:2026/1/15 04:02
上一页
集成接口 API(EIP API)
下一页
平台错误码(Error Codes)
默认页脚
Copyright © 2026 Mr.Hope