- 首先引入以下依赖
<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
请登录后查看回复内容