java - 使用 Java 构建插件系统的最佳方法

标签 java design-patterns plugins frameworks plugin-architecture

您将如何为您的 Java 应用程序实现插件系统?

是否有可能拥有一个易于使用(对于开发人员)的系统来实现以下目标:

  • 用户将插件放入应用的子目录
  • 插件可以提供配置屏幕
  • 如果您使用框架,许可是否与商业开发兼容?

最佳答案

首先你需要一个所有插件都需要实现的接口(interface),例如

public interface Plugin {
    public void load(PluginConfiguration pluginConfiguration);
    public void run();
    public void unload();
    public JComponent getConfigurationPage();
}

插件作者应该将他们的插件捆绑到 JAR 文件中。您的应用程序打开 JAR 文件,然后可以使用 JAR list 中的属性或 JAR 文件中所有文件的列表来查找实现您的插件接口(interface)的类。实例化该类,插件就可以使用了。

当然,您可能还想实现某种沙箱,以便限制插件可以做什么和不能做什么。我创建了一个小test application (和 blogged about it )由两个插件组成,其中一个插件被拒绝访问本地资源。

关于java - 使用 Java 构建插件系统的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016840/

相关文章:

java - 泛型和类型

html - 按钮不会在所有分辨率下左对齐

java - 相当于 <tx :jta-transaction-manager/> for Java EE environments 的注释

Java 为什么需要实现接口(interface)?

java - 如何编写没有方法重载的通用 Java API

python - Sed 删除/替换双括号

java - 接收音频文件的插件

java - Eclipse 4 RCP插件: How to programmatically import projects into workspace

java - SSL/TLS 版本兼容性?

django - 为什么在 Django 中检查两个密码是否匹配如此复杂?