【问题标题】:Is there a pattern for dynamically loadable modules in Spring Boot?Spring Boot 中是否有动态加载模块的模式?
【发布时间】:2017-02-18 14:25:46
【问题描述】:

我的 Spring Boot 应用程序具有内容管理系统。我希望能够动态加载新组件而无需重新启动应用程序。示例组件可能正在加载新的视频播放器组件或广告组件。每个组件都可能包含自己的控制器和视图。

推荐的模式是什么?有什么好的框架可以帮助处理这个问题? OSGi 是一种选择吗?

【问题讨论】:

标签: java spring spring-boot module osgi


【解决方案1】:

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

  1. Spring factories 是一种(自动)配置 bean 的方法。

  2. 另一个有趣的方法是 Spring Boot 如何自己处理扩展 - 通过拥有自己的 spring-boot-starters,如本文中:https://blog.codecentric.de/en/2014/11/extending-spring-boot-five-steps-writing-spring-boot-starter/,结合使用 Spring Factory 你可以

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

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

总的来说,我的印象是,拥有插件的概念有点违背 Spring Boot 的想法,因为它是为微服务架构设计的。所以添加的(插件)功能可能宁愿是一个由网关编排的单独的微服务(具有自己的存储),这里让我强调基于 spring-boot 的JHipster 项目来展示这种架构的想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多