我想在 Spring Boot 应用程序中实现插件架构。让我解释一下我的情况。我有一个主应用程序,它启动服务器、管理安全性等。该应用程序就像我的最终产品的根,其中将包括此根应用程序和添加到其中的其他插件。
现在,插件本身就是 Spring Boot 应用程序,我可以通过动态搜索特定路径中的 jar 或将它们添加到项目依赖项作为库来将其添加到根应用程序。
插件有自己的配置,就像在主根应用程序内运行的应用程序一样。假设如果根应用程序运行服务器,则插件应用程序可能拥有为我的产品提供功能的所有 Controller (端点)、bean 等。
这是前提,现在我想知道的是,
- 如何实现这种架构?
- 根应用如何与插件通信?
- 它们会有单独的应用程序上下文吗?
- 如何从根应用启动和配置子应用?
- 当应用程序收到客户端的请求时,考虑到我可能有很多插件,我如何将请求路由到特定插件内的特定 Controller 。
我对这里的概念及其运作方式感到困惑。任何形式的帮助表示赞赏。如果任何人都可以提供一些例子,那就太好了。
最佳答案
这篇文章是 3 年前的。但是,我想为正在寻找类似场景解决方案的人回答这个问题。 看来pf4j这个插件框架很适合你。除了支持原生应用外,它还带有 spring-pf4j,因此您可以将其使用到 spring 中。
关于java - 在基于注释的 Spring Boot 应用程序中实现插件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32901188/