Skip to content

示例 SPI-only 插件

Maven 模块:mms-plugin-sample-spi。演示 runtimeMode: SPI_ONLY:无 @PluginController,不注册 MVC 路由;适合理解 HostServices、缓存与 PluginHealthContributor 独立类登记。

与「健康示例」怎么选

想练 浏览器能打开的接口 → 用 示例健康插件。只想看 onLoad + 宿主能力 + 健康探针没有 /plugin/... 业务 URL → 读本页。

标识与运行模式

插件 IDmms.plugin.sample-spi
runtimeModeSPI_ONLY
hostServicesContractVersion1
入口类com.sxpcwlkj.plugin.sample.spi.SampleSpiOnlyPlugin

能力摘要

  • onLoad:使用宿主 HostServices 提供的缓存能力写入示例键值(具体键名以源码为准)。
  • 健康探针:独立类实现 PluginHealthContributor,并在 META-INF/services 中单独登记。
  • 对等调用:可通过 tryInvokePeerPlugin / pluginHost/invoke 调用 MmsPlugin 实现类上暴露的公有实例方法(若有)。

与 HOST_MVC 对比

若需浏览器可调 HTTP,应使用 HOST_MVC 并编写 @PluginController;本模块刻意不加 Web,避免示例噪音。

Demo:引入插件

bash
cd mms-plugins/mms-plugin-sample-spi
mvn -DskipTests package

插件市场 上传 target/mms-plugin-sample-spi-*.jar 并激活。onLoad 会向 HostServices 缓存写入一条短期字符串(用于证明 SPI 与缓存契约已执行)。

Demo:验证与调用说明

  • 健康GET /system/pluginHost/health 中应出现本插件探针行(实现见 SampleSpiHealthContributor)。
  • HTTP @PluginController,浏览器没有 /plugin/... 业务路径。
  • invoke / tryInvokePeerPlugin:当前 SampleSpiOnlyPlugin 未提供 公有实例业务方法(仅 onLoad)。若要练习反射调用,请使用 示例健康(HTTP)或 DeepL / 企业微信(HTTP + invoke)。

参见

Released under the MIT License.