小编典典

Java插件框架选择

java

我们正在尝试确定如何为我们正在实现的服务实现一个简单的插件框架,该框架允许“插入”不同类型的计算器。

阅读了许多有关Java插件框架的文章后,似乎最常见的选择是:

OSGI似乎超出了我们的需要。

可以“自己滚动”,但是重用公共库会很好。

因此,我们只涉及JPF和JSPF。JPF似乎不再活跃。

JSPF看起来非常简单,实际上是我们所需要的。但是,我对此知之甚少。我只看到一个帖上了。还有其他人对JSPF有任何经验吗?或对此设计选择还有其他意见吗?


更新 :不一定有正确的答案..但是,我们将采用Pavol的想法,因为我们只需要一个非常非常简单的解决方案。感谢EoH提供的指导。


阅读 406

收藏
2020-09-28

共1个答案

小编典典

如果您计划仅具有一个(或只有几个)不太复杂的“扩展点”,那么定义良好的SPI和一项配置可能就足够了。无需使用插件框架。

通过配置,我的意思是找到插件的某种机制。例如,类似META-INF/services/或仅在配置文件中列出您的插件的内容。

更多详细信息(根据要求):

SPI = 服务提供者接口,“
API的实现者端等效”。要了解更多信息,请尝试寻找API和SPI之间的区别。但是,在这种情况下,这只是您的插件要实现的接口(即为您的插件定义合同)的幻想。

Ethan Nicholas 撰写的一篇不错的简短文章“
创建服务提供者接口
”描述了如何以与Java平台本身的多个部分相同的方式创建自己的SPI。

META- INF/services/可以看作是创建SPI的更通用的方法。有关更多信息,请参见JAR文件规范的相应部分。

2020-09-28