我将尝试提供几种可能的解决方案。我确实花了一些时间
为正在进行的项目准备小型PoC,所以希望
下面的选项有意义。
重要说明:定义一些扩展点,解析
并找到可用的实现确实非常容易。有很多解决方案可用,
例如好的和简单的解决方案– JSPF
资源是WEB应用程序的主要问题
OSGi
OSGi并没有那么糟糕,而且很有用。它看起来很沉重(有些
实现很沉重),但这是标准化平台的代价。我
建议检查Apache Felix。可以在
“轻量级”模式下使用。顺便说一下,它包括Web控制台,该控制台构建为
基于松散耦合的基于插件的应用程序,可能会有所帮助:
在此处输入图片说明
扩展Apache Felix Web 控制台的一些示例
可以通过为
服务属性
felix.webconsole.label设置为页面的标签(URL的最后一个段)为接口javax.servlet.Servlet注册OSGi服务来扩展Web控制台
。相应的服务称为Web控制台插件或
简称插件。
您也可以检查eie-manager,
它干净整洁并使用OSGi来管理插件。
对您来说可能是一个很好的例子。
自定义插件框架
我建议回顾Jenkins / Hudson背后的解决方案。我想说詹金斯插件系统已经相当成熟和可靠了。可以
作为一个很好的例子。
在此处输入图片说明
另请检查Hudson插件架构
简单的解决方案
对于我的项目,我已经基于
JSPF和自定义依赖项解析器构建了插件抽象层。
优点:
简单小
干净的概念
效果不错
缺点:
没有适当的插件管理会很慢(完整的类路径搜索)
提供非常基本的功能
可能需要其他注意
我建议仅在 确实需要一些简单性并且想要控制所有内容的情况下才使用JSPF
。
JPF提供了许多有趣的功能
,例如:
插件可以在应用程序
执行期间“热注册”甚至取消注册。此外,可以
“即时”激活和停用已注册的插件,从而最大程度地减少了运行时资源的使用。
问题是JPF已死。
建议
不要花一些时间在Apache Felix上。它已经
足够成熟,因此您的时间投资可能会获得很多回报。



