gpt4 book ai didi

java - 在 Java 中创建沙盒插件可扩展应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:54 25 4
gpt4 key购买 nike

问题与this one 非常相似,但我需要专注于不同的问题。

假设我有一个带有大型数据库(即电影数据库)的应用程序。应用程序的用户应该能够添加她自己的插件并能够运行它们。

场景可能是这样的:

  • 启动主应用
  • 将stats-plugin.jar放在/app/plugins目录下
  • 告诉主应用加载新插件
  • 告诉应用列出插件
  • 选择一个插件(例如刚刚安装的)并运行
  • stats-plugin.jar 查询有关电影的数据库并计算恐怖电影,返回计数
  • 主应用呈现结果


每个插件都可以有几个标准方法(一个通用的 Plugin 接口(interface))被调用,例如onInitialize , onRun

主应用程序需要保证的是,如果插件崩溃(例如除以 0),主应用程序将保持稳定(例如会显示错误对话框,但不会自行崩溃)。还应该可以限制执行时间并检查插件正在执行哪些操作。

这一切都归结为一个沙盒插件环境。最重要的事情是:插件式可扩展性和沙盒插件 - 只允许安全操作(例如读取数据库,但不更新它)。

插件不必用 Java 编写。它需要以某种方式可执行...它甚至可以是 JavaScript 文件...如果可能的话。

您将如何处理这样的任务?

最佳答案

您应该考虑使用 Security Manager ,也许还定义了一些您自己的权限。在定义策略时,您可以使用一组常用权限。

请注意,对 RDBMS 的只读访问不太可能在您的 Java 环境范围内。相反,这通常是使用具有特定权限的单独 RDBMS 用户来处理的。您的框架需要使用该用户名连接到数据库。

关于java - 在 Java 中创建沙盒插件可扩展应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11124409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com