Solon 热插拔插件的添加、启动、停止-Solon论坛-开发交流-祥拓软件

Solon 热插拔插件的添加、启动、停止

  • 首先引入以下依赖
    <dependency>
        <groupId>org.noear</groupId>
        <artifactId>solon.hotplug</artifactId>
    </dependency>
  • 动态添加插件
    // 如果存在 先停止然后在运行
            try {
                PluginManager.unload(pluginCode);
                PluginManager.remove(pluginCode);
            } catch (Exception e) { }
    // 删除旧的jar文件
            new File(Solon.cfg().get("plugin.file") + file.name).delete();
    // 保存新的jar文件
            File newFile = new File(Solon.cfg().get("plugin.file") + file.name);
            file.transferTo(newFile);
    // 添加插件
            PluginManager.add(pluginCode, newFile);
    // 启动插件
            PluginManager.start(pluginCode);
  • 启动插件
    // 判断插件是否存在
            File file = new File(Solon.cfg().get("plugin.file") + plugin.getPluginCode() + ".jar");
            if (!file.exists()) {
                return R.error("该插件不存在");
            }
    // 启动插件
            PluginManager.add(plugin.getPluginCode(), file);
            PluginManager.start(plugin.getPluginCode());
  • 停止插件
    // 这样才能彻底停止
            try {
                PluginManager.unload(pluginCode);
                PluginManager.remove(pluginCode);
            } catch (Exception e) {
                return R.error("插件已停止");
            }
    // 如果需要删除插件,先停止然后获取到jar路径然后执行删除
    new File(Solon.cfg().get("plugin.file") + pluginCode + ".jar").delete();

相关开源项目:https://gitee.com/q7486/work-solon-java

 

© 版权声明
请登录后发表评论

    请登录后查看回复内容