Java Web应用程序“;插件";建筑学
请就如何为Java web应用程序提供“插件”架构给出建议 目前,我们在TomcatServlet容器中使用非常简单和标准的Spring+Hibernate+Struts 2。(使用maven构建) 我需要像这样的东西。其中任何模块都可以启用/禁用、更新 请排除OSGi、Portlet等重选项Java Web应用程序“;插件";建筑学,java,maven,web-applications,plugins,architecture,Java,Maven,Web Applications,Plugins,Architecture,请就如何为Java web应用程序提供“插件”架构给出建议 目前,我们在TomcatServlet容器中使用非常简单和标准的Spring+Hibernate+Struts 2。(使用maven构建) 我需要像这样的东西。其中任何模块都可以启用/禁用、更新 请排除OSGi、Portlet等重选项 OSGi太重了,并没有很好地采用web技术。我已经看过了 它只是很古老,从未流行过 查看此问题的答案: 如果您不信任插件代码,可以实现沙箱,如下所述: 开源项目支持插件停用,即使对于您的目的来说它太重
- OSGi太重了,并没有很好地采用web技术。我已经看过了李>
- 它只是很古老,从未流行过
开源项目支持插件停用,即使对于您的目的来说它太重,您也可以从中获得灵感。我将尝试提供几种可能的解决方案。我确实花了一些时间为我正在进行的项目准备小型POC,所以希望下面的选项是相关的 重要提示:定义一些扩展点、解析和查找可用的实现非常容易。有很多可用的解决方案,例如好的和简单的解决方案-- 资源是WEB应用程序的主要问题 OSGi OSGi并没有那么糟糕,而且非常有用。它看起来很重(有些实现很重),但这是标准化平台的价格。我建议你检查一下。它可以在“轻量级”模式下使用。顺便说一下,它包括Web控制台,它构建为松散耦合的基于插件的应用程序,可能会有帮助: 一些例子 可以通过为Web控制台注册OSGi服务来扩展Web控制台 将javax.servlet.servlet与服务属性进行接口 felix.webconsole.label设置为的标签(URL中的最后一段) 这一页。相应的服务称为Web控制台插件或 插件简称 您还可以检查哪个插件干净、简单,并使用OSGi管理插件。可能是你的一个好榜样 自定义插件框架 我建议回顾一下背后的解决方案。我想说Jenkins插件系统是相当成熟和可靠的。可以作为一个很好的例子 请同时检查 简单解决方案 对于我的项目,我使用自定义依赖解析程序构建了基于的插件抽象层 优点:
- 简陋
- 清洁概念
- 很好用
- 没有适当的插件管理可能会很慢(完整的类路径搜索)
- 提供非常基本的功能
- 可能需要额外注意
一定要花点时间和她在一起。它已经足够成熟了,所以你的时间投资可能会有很大回报。Atlassian开源了他们的插件系统。我看到亚特兰西队正在进行大量的工作。值得探索它的如何将其应用于web部件?您会将所有插件都设置为.war吗?如果这些插件可以是独立的webapps,那么您不必做任何事情,例如,Tomcat manager webapp允许您启动/停止/重新加载webapps,而无需关闭并重新启动服务器:插件不应该是独立的webapps。通过这种方式,将有大量的工作如何集成它们(交叉链接、安全性、simgle登录等),然后我想将插件作为.war文件是没有意义的。我已经奖励了bounty,但问题仍然没有解决。