我们正在尝试确定如何为我们正在实现的服务实现一个简单的插件框架,该服务允许“插入”不同类型的计算器。
看完了number在关于 Java 插件框架的帖子中,最常见的选项似乎是:
- OSGI
- "Rolling your own"插件框架
- Java Plugin Framework (JPF)
- Java Simple Plugin Framework (JSPF)
OSGI 似乎超出了我们的需要。
“滚动你自己的”是可以的,但重用一个公共(public)库会很好。
所以我们只剩下 JPF 和 JSPF。 JPF 似乎不再处于积极开发中。
JSPF 看起来很简单,而且确实是我们所需要的。但是我没有听到太多关于它的消息。我只看过一个post关于它的 StackOverflow。有没有其他人对 JSPF 有任何经验?或者对此设计选择有任何其他意见?
更新:这不一定是正确的答案。但是我们将采用 Pavol 的想法,因为我们只需要一个非常非常简单的解决方案。感谢 EoH 的精彩指南。
最佳答案
(免责声明:我是 JSPF 的作者,所以最好对我的评论持保留态度;-)
我开始使用 JSPF 的主要原因是因为我遇到了和你现在一样的问题:我一直在寻找一个简单的解决方案来使我的论文项目 1) 可扩展 2) 给它一个或多或少清晰的代码结构体。
我没有决定使用现有框架的原因是因为它们中的大多数一开始就非常重量级,以至于我在阅读文档时迷失了方向,几乎忘记了我最初的任务。所以,根据你的说法
We're trying to determine how to implement a simple plugin framework for a service we are implementing that allows different types of calculators to be "plugged-in".
我认为您可以试一试 JSPF,看看您在一两个小时内能走多远。
但是,最终决定还取决于您到底想要实现什么,以及具体情况。
我从许多人那里听到了积极的结果,他们一直在使用它来构建他们的项目或在他们的项目中加载插件。另一方面,我也认识我们部门的一个人,因为他觉得这与他的编程风格不太协调,所以又把它扔掉了。
所以,为了简短地回答你的问题(肯定是有偏见的),我会使用
OSGi 用于项目和团队
- 它们很大并且有很多人在做这件事
- 证明设置基础架构的开销是合理的
- 需要提供的具体服务
JPF 用于项目和团队
- 中等规模(?,老实说,我不确定他们所针对的项目/团队规模)
- 需要更多结构化工具来组织代码,例如 XML 配置、详细的插件生命周期管理、可扩展插件...
JSPF 适用于项目和团队
- 体积小,遵循敏捷范式
- 只需要开箱即用的东西,无需配置或设置
- 愿意为了简单而牺牲一些功能
希望您找到最适合您的场景的插件框架。而且,无论您尝试什么,我都会很高兴听到您的结果。
关于Java插件框架选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1613935/