- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在考虑创建一个程序,该程序可以执行多个不同的任务,同时由一个中央线程监视。这个想法是创建一个核心程序,该程序将在运行时/运行时查找并加载单独的模块。这些模块将在将完成的对象传递给另一个模块之前执行自己的任务,该模块将处理诸如将完成的产品上传到 Web 服务器或将结果数据组织到预先确定的文件/文件夹结构(见图基本概念)。 我以前从未真正使用过 Java 中的模块化设计;我过去所有的程序都是完全独立的,所以我几乎不知道从哪里开始。
我的目标是在核心程序中存储外部库(例如,适用于 Java 的 AWS SDK,它本身可以将 .jar 压缩到大约 18MB),以便在进行更新时几乎可以立即分发单独的模块,而不是为了修复 1 行错误而不得不重新分发整个 18MB 以上的独立程序。此外,我希望能够在必要时更新单个模块,而不必重新启动整个程序,允许其他模块在更新一个模块时继续工作,减少整体停机时间,以便程序唯一需要的时间完全关闭是在对核心进行更新时。
我想知道的是,这可能吗(我假设是这样),如果可能的话;我应该研究什么/我将如何设置它? (我是在重新发明轮子吗?如果是这样,我在哪里可以找到所说的轮子?)
我研究了使用 ServiceLoader
并尝试了示例 here ,但我不确定如何将一个模块指向另一个模块,或者它是否可以从核心检索库类,也不确定它是否可以执行提到的“主动更新”。到目前为止,我所看到的是(在我的示例中)核心可以访问模块,但我不确定模块是否/如何访问核心。
不确定它是否与帖子相关,但我在 Eclipse 中完成我的所有工作(如果有可用的特定 IDE 工具,我认为值得一提)。
最佳答案
看看 OSGi,Bundle Structure 基本上就是您要找的东西。使用 OSGi,您可以创建“bundle”,它们是带有 ➕ 元数据的 jar,用于告诉运行时(例如可以是 Apache Felix 或 Eclipse Equinox)您的 bundle 具有哪些依赖项以及它提供什么。使用 OSGi,您可以独立于所有其他 Bundle 启动、停止和更新每个 Bundle,它甚至可以根据其他功能停止并在 bundle 更新后重新启动它们(前提是您正确配置了它;))
@bhspencer:仅仅加载新的 jar 并不能让你正确更新,因为标准的 java 类加载器不允许卸载类。
关于java - 如何制作一个在运行时更新的 "modular"Java 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29038857/
我具有以下Xcode项目依赖项: A -> C B -> C 当我分别构建它们时,一切正常。 但是,我想将A和B添加到同一Xcode项目中,从而创建以下依赖关系图: / -> A -> C D
“模块化”的有效性取决于将系统划分为模块时使用的标准。 我想要的是,提出一些可用于将系统分解为模块的标准。 最佳答案 Cohesion : 模块中的功能是相关的。 Low coupling :模块之间
加载+重新加载 fsx 文件的推荐方法是什么?只是试验......是的,是的,正确的语言,正确的工作等等。 我喜欢如何在 FSI 中完成以下工作: #load "script.fsx"; open S
在 igraph ?modularity 部分给出了示例代码 g <- graph.full(5) %du% graph.full(5) %du% graph.full(5) g <- add.edg
最近我对如何组织我的 Scala 代码感到困惑,因为有很多选择。 Scala 如何/何时使用包、对象、包对象来组织代码是否有任何指导方针? 最佳答案 了解 Scala 的功能 首先,我们需要了解每种模
我的 node.js 应用程序中有这样的文件结构: 应用程序 模特 用户 书 Controller 用户 书 观看次数 用户 书 我想让我的应用模块化。如何从 user Controller 与 bo
因为我需要测试 Boost 的一些实验性功能,所以我想从 Modular Boost 存储库安装 Boost。 我按照 https://svn.boost.org/trac/boost/wiki/Tr
我用了flutter_modular用于 flutter web 导航。 import 'package:flutter_modular/flutter_modular.dart'; class A
我需要计算 (a/b) mod m 哪里 a 和 b 是非常大的数字。 我想做的是计算 (a mod m) * (x mod m) ,其中 x 是 modular inverse的 b . 我尝试使用
我想构建一个可以在单个页面上有多个实例的 jQuery 应用程序。 但是,我遇到了一个实例从其他实例接收事件的问题。例如,如果我有以下事件: $('#start_btn').click(...) 如果
我是 java 和 javafx 2 的新手。我想要做的是一个应用程序,它基本上是一个容器,用于放置以后可以添加的单独“模块”。 主要应用程序应该是某种内容浏览器,用于扫描文件夹中的模块。然后,您可以
我一直在考虑创建一个程序,该程序可以执行多个不同的任务,同时由一个中央线程监视。这个想法是创建一个核心程序,该程序将在运行时/运行时查找并加载单独的模块。这些模块将在将完成的对象传递给另一个模块之前执
目前正在创建一个代码,使用两种类型的优先级队列作为单独的方法,方法之间的代码相似,试图将它们模块化为一个方法,但优先级队列类型的参数不同 我当前正在运行 eclipse,尝试添加 if 语句(如果 1
今天我无法将 apply 函数应用到 modularity 函数,后者的函数在 'igraph' 包中。以下是代码和结果" > library(igraph) > g = graph.full(2)
目标:创建一个模块化应用程序,其上的插件必须具有 UI(这是关键点)。我有关于主应用程序(“服务器”)的所有信息,也有关于所有插件的信息(所有这些都将由我们制作)。所以我们想把主 apk 给用户,让他
我无法为 body1TextProvider 和 body2TextProvider 设置白色文本颜色。只有灰色可供选择。 我的代码: let modularLarge = CLKComplicati
我想使用 Rails 构建一个可扩展的模块化应用程序,该应用程序可以配置以满足个人需求。 让我解释一下我对“可扩展”和“模块化”的理解。例如,假设我正在开发一个博客应用程序引擎并且我有一个名为 Blo
我是一名在大学工程项目团队工作的学生。 我们的软件子团队正在寻求创建一个模块化的 GUI,允许通过捕捉面板进行实时重新配置,用户可以在 GUI 周围移动和分离(具有此类 GUI 的流行程序:Adobe
如果我用 emcc 编译我的 C++ 代码没有 -s MODULARIZE=1 -s 'EXPORT_NAME="createMyModule"' ,我可以加载我的 WebAssembly 并访问 F
基于此结构:http://flask.pocoo.org/docs/patterns/packages/ 我也尝试过这篇文章:Deploying Flask app to Heroku 我无法让它在
我是一名优秀的程序员,十分优秀!