Java插件框架选择
我们正试图确定如何为我们正在实现的服务实现一个简单的插件框架,该服务允许不同类型的计算器“插入” 在阅读了大量关于Java插件框架的文章后,最常见的选项似乎是:Java插件框架选择,java,osgi,plugin-architecture,Java,Osgi,Plugin Architecture,我们正试图确定如何为我们正在实现的服务实现一个简单的插件框架,该服务允许不同类型的计算器“插入” 在阅读了大量关于Java插件框架的文章后,最常见的选项似乎是: “”插件框架 (少年警讯) (JSPF) OSGI似乎超出了我们的需要 “滚动您自己的”是可以的,但是重用一个公共库会很好 所以我们要谈的是JPF和JSPF。JPF似乎不再积极开发 JSPF看起来很简单,实际上是我们所需要的。但是我没听说过多少。我在StackOverflow上只见过一个。其他人有JSPF的经验吗?或对该设计选择的
- “”插件框架
- (少年警讯)
- (JSPF)
更新:不一定有正确的答案。。然而,我们将采用Pavol的想法,因为我们只需要一个非常非常简单的解决方案。感谢EoH提供的精美指南。如果您计划只拥有一个(或只有几个)不太复杂的“扩展点”,那么一个定义良好的SPI和一段配置可能就足够了。不需要使用插件框架 我所说的配置是指一些查找插件的机制。例如,类似于
META-INF/services/
或只是在配置文件中列出插件
更多详情(应要求):
SPI=,一个“API的实现端等价物”。要了解更多信息,请尝试搜索API和SPI之间的差异。然而,在这种情况下,它只是一个由插件实现的接口的花哨术语(即定义插件的契约)
Ethan Nicholas的一篇漂亮的短文“”描述了如何以与Java平台本身的几个部分类似的方式创建自己的SPI
META-INF/services/
可以被视为创建SPI的更通用的方法。更多信息可以在。的相应部分找到(免责声明:我是JSPF的作者,所以最好对我的评论持保留态度;-)
我开始使用JSPF的主要原因是,我遇到了与您现在相同的问题:我正在寻找一个简单的解决方案,以使我的论文项目1)可扩展,2)提供或多或少清晰的代码结构
我之所以没有决定使用现有的框架,是因为大多数框架一开始都很重,以至于我在阅读文档时迷失了方向,几乎忘记了我最初的任务。那么根据你的说法,
我们正在努力确定如何
实现一个简单的插件框架
对于一项服务,我们正在实现它
允许使用不同类型的计算器
要“插入”
我想你可以试试JSPF,看看在一两个小时内你能走多远
然而,最终的决定也有点取决于你到底想要实现什么,以及具体的情况
我从许多人那里听到了积极的结果,他们一直在使用它来构建他们的项目或在项目中加载插件。另一方面,我也知道我们部门的一个人再次丢弃了它,因为他觉得它与他的编程风格不太协调
所以,为了简单地回答你的问题(当然是带偏见的),我会使用
OSGi适用于项目和团队
- 它们很大,有很多人在做
- 这证明了设置基础设施的开销是合理的
- 需要提供特定的服务
- 中等规模(?,老实说,我不确定他们的目标项目/团队规模)
- 它们需要更结构化的工具来组织它们的代码,比如XML配置、详细的插件生命周期管理、可扩展插件
- 规模小,遵循敏捷范式
- 这只需要一些开箱即用的东西,而不需要配置或设置
- 愿意为了简单而牺牲一些特性吗
我希望您发现插件框架最适合您的场景。而且,无论您尝试什么,我都很高兴听到您的结果。如果您需要一个非常简单的解决方案,请尝试。这是一个针对Java和PHP的最低限度的插件框架。我们只有一个(或最多几个)直接的扩展。你能详细说明你的想法吗?很抱歉反应太晚了。我更新了我的原始答案,有更多的细节。明白了。这是一个很好的简单解决方案。。谢谢。Ethan Nicols的文章“创建服务提供商接口”现在可以在以下网址找到:有人在生产中使用过JSPF吗?有人举过JSPF的简单例子吗?我想了解选项功能。jspf是否已弃用?