java - 在基于注释的 Spring Boot 应用程序中实现插件架构

标签 java spring spring-mvc spring-boot plugin-architecture

我想在 Spring Boot 应用程序中实现插件架构。让我解释一下我的情况。我有一个主应用程序,它启动服务器、管理安全性等。该应用程序就像我的最终产品的根,其中将包括此根应用程序和添加到其中的其他插件。

现在,插件本身就是 Spring Boot 应用程序,我可以通过动态搜索特定路径中的 jar 或将它们添加到项目依赖项作为库来将其添加到根应用程序。

插件有自己的配置,就像在主根应用程序内运行的应用程序一样。假设如果根应用程序运行服务器,则插件应用程序可能拥有为我的产品提供功能的所有 Controller (端点)、bean 等。

这是前提,现在我想知道的是,

  1. 如何实现这种架构?
  2. 根应用如何与插件通信?
  3. 它们会有单独的应用程序上下文吗?
  4. 如何从根应用启动和配置子应用?
  5. 当应用程序收到客户端的请求时,考虑到我可能有很多插件,我如何将请求路由到特定插件内的特定 Controller 。

我对这里的概念及其运作方式感到困惑。任何形式的帮助表示赞赏。如果任何人都可以提供一些例子,那就太好了。

最佳答案

这篇文章是 3 年前的。但是,我想为正在寻找类似场景解决方案的人回答这个问题。 看来pf4j这个插件框架很适合你。除了支持原生应用外,它还带有 spring-pf4j,因此您可以将其使用到 spring 中。

网址:https://pf4j.org

关于java - 在基于注释的 Spring Boot 应用程序中实现插件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32901188/

相关文章:

java - 处理配置时出现 Spring MVC 安全错误 : 'dataSource' or 'jdbcTemplate' is required Although defined in Application context

java - Spring - Rest Controller 将 json 输入处理为空字符串

java - SQL Error : 1054, SQLState: 42S22 Unknown column in 'field list' 错误 Java Spring Boot Mysql 错误

JavaScript 提交按钮从 Spring MVC 返回对象响应

java - Activiti Rest 异常处理

java - 更新 ListView 中的按钮

java - 属性文件中保存的值是否有长度限制?

java - 查询未在 HSQLDB 中运行

java - 使用 Spring 发送电子邮件

Java 8 : Interface with static methods instead of static util class