【问题标题】:Build Very Simple Minimalist Java Plugin Container构建非常简单的极简 Java 插件容器
【发布时间】:2018-12-28 10:48:43
【问题描述】:

我正在开发一个应用程序,我需要构建一个非常小且最小的插件容器。

以下是我想要实现的目标。

  1. 应用程序被分成更小的插件,打包为 Jars。
  2. 插件容器应该获取它们并加载所有 jar。
  3. 每个插件都不应干扰其他插件,并且应该与它的依赖库一起独立运行。基本上所有插件都应该在运行时隔离。

我尝试使用 OSGI 容器,但它增加了很高的复杂性。还有许多与 OSGI 不兼容的第三方库会产生需要大量时间来调试的问题。还检查了 Spring Boot、JPF 等,但不是很感兴趣。所以想到了使用非常小的本土插件框架。

我不知道该怎么做以及从哪里开始。请任何人都可以指出正确的方向,在那里我可以获得有关此的详细信息。

提前谢谢你。

【问题讨论】:

  • 应用程序需要 UI 吗?它将是一个网络应用程序?或者它会是一种守护进程?
  • 听起来像是你可以用 Docker + Kubernetes 之类的东西来实现的。不确定您到底想做什么。
  • 应用程序不需要 UI。但是所有插件都应该能够相互交互。容器应该有一个小的服务注册中心。
  • 如果您的目标是让插件开发人员的一切都保持简约(但不介意使用更复杂的框架作为您的插件平台),OSGI 可能是一个不错的选择。例如,几年前,我将 Apache Karaf 用于模块化 Web 应用程序 - 插件开发人员所要做的就是实现一些服务接口并将带有(非 osgi)库的 jar 放在 Karaf 自动运行 jar 的文件夹中作为 OSGI 包。

标签: java plugins containers modularity loose-coupling


【解决方案1】:

如果您真的想要极简主义,请查看 Java 的 ServiceLoader 类。 这是tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2020-12-06
    • 1970-01-01
    • 2021-10-16
    • 2012-10-05
    • 2017-05-28
    • 2012-01-18
    相关资源
    最近更新 更多