2016-10-10 52 views
3

我的Spring Boot应用程序具有内容管理系统。我希望能够在不需要重新启动应用程序的情况下动态加载新组件。示例组件可能正在加载新的视频播放器组件或广告组件。每个组件都可能包含自己的控制器和视图。Spring Boot中是否有可动态加载模块的模式?

推荐的模式会是什么样的,什么是一个好的框架来帮助解决这个问题? OSGi是一个选项吗?

+0

怎么样,如果你去与基于插件的架构 –

+0

听起来不错!继续... – Spider

回答

1

恐怕也没有100%的解决方案,也许一些选项,让我强调以下三个:

  1. spring factories,办法(自动)配置豆类。

  2. 另一个有趣的方法去是春天开机如何自己处理扩展的方式 - 通过在这篇文章中有像自己的弹簧引导首发,:https://blog.codecentric.de/en/2014/11/extending-spring-boot-five-steps-writing-spring-boot-starter/,使用Spring工厂相结合你可以

  3. 最类似插件的解决方案是spring-plugin-project。然而,它看起来像只有加载被支持,一些其他功能,如版本也缺失,所以你可能必须自己构建它。

所以,主要的问题可能是卸载,并在运行时更新这些东西,这使我最终的观察:

总的来说,我的印象中,有一个插件的概念正在一因为它是为微服务体系结构设计的,因此它与Spring启动的想法背道而驰。因此,添加的(插件)功能可能是一个独立的微服务(带有自己的存储),它由网关进行编排,这里让我重点介绍基于弹簧引导的项目,以展示这种体系结构的想法。