示例 SPI-only 插件
Maven 模块:mms-plugin-sample-spi。演示 runtimeMode: SPI_ONLY:无 @PluginController,不注册 MVC 路由;适合理解 HostServices、缓存与 PluginHealthContributor 独立类登记。
与「健康示例」怎么选
想练 浏览器能打开的接口 → 用 示例健康插件。只想看 onLoad + 宿主能力 + 健康探针、没有 /plugin/... 业务 URL → 读本页。
标识与运行模式
| 项 | 值 |
|---|---|
| 插件 ID | mms.plugin.sample-spi |
| runtimeMode | SPI_ONLY |
| hostServicesContractVersion | 1 |
| 入口类 | 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)。
