yuv*_*uva 10 java spring spring-mvc plugin-architecture spring-boot
我想在Spring Boot应用程序中实现插件架构.让我解释一下我的情景.我有一个主应用程序,它启动服务器,管理安全性等.该应用程序就像我的最终产品的根,它将包括这个根应用程序和添加到其中的其他插件.
现在,这些插件本身就是Spring Boot应用程序,我可以通过动态搜索特定路径中的jar或者将它们作为库添加到项目依赖项中来添加到root应用程序.
插件有自己的配置,就像在主根应用程序中运行的应用程序一样.假设根应用程序运行服务器,插件应用程序可能包含为我的产品提供功能的所有控制器(端点),bean等.
这是前提,现在我想知道的是,
我对这里的概念感到困惑,以及它是如何工作的.任何形式的帮助表示赞赏.如果有一些人可以提供的例子,那将是非常好的.
就像Java dyanmically load plugin中描述的那样,您有两个选项:
至少对于第二种方法,每个jar文件应该实现相同的接口,您可以使用它来注册jar文件的内容(类似于OSGi包的start方法).通过这种方式,您可以分离每个jar文件的应用程序上下文,并且仅在启动时使其可用(例如,您可以创建一个上下文层次结构,在其中添加jar的上下文添加到根上下文中).
您的最后一点可能是一个棘手的问题,因为您必须考虑可以有多个服务可以满足相同的请求.从OSGi再次获取叶子这些服务通常通过公共接口定义,并且实现具有优先级,这将指示如果有多个服务应该使用哪个服务.当然,您可以定义其他方法来选择其中一种方法.
这个帖子是3年前的。但是,我想为正在寻找类似情况的解决方案的人回答这个问题。pf4j似乎是一个适合您的插件框架。除了支持本机应用程序外,它还具有spring-pf4j,因此您可以在spring中使用它。
网址:https://pf4j.org
| 归档时间: |
|
| 查看次数: |
7317 次 |
| 最近记录: |