插件处理详解

说明

  • 在soul-admin后台,每个插件都用handle(json格式)字段来表示不同的处理,而插件处理是就是用来管理编辑json里面的自定义处理字段。
  • 该功能主要是用来支持插件处理模板化配置的

表设计

  • sql
  1. CREATE TABLE IF NOT EXISTS `plugin_handle` (
  2. `id` varchar(128) NOT NULL,
  3. `plugin_id` varchar(128) NOT NULL COMMENT '插件id',
  4. `field` varchar(100) NOT NULL COMMENT '字段',
  5. `label` varchar(100) DEFAULT NULL COMMENT '标签',
  6. `data_type` smallint(6) NOT NULL DEFAULT '1' COMMENT '数据类型 1 数字 2 字符串 3 下拉框',
  7. `type` smallint(6) NULL COMMENT '类型,1 表示选择器,2 表示规则',
  8. `sort` int(4) NULL COMMENT '排序',
  9. `ext_obj` varchar(1024) DEFAULT NULL COMMENT '额外配置(json格式数据)',
  10. `date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  11. `date_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  12. PRIMARY KEY (`id`),
  13. UNIQUE KEY `plugin_id_field_type` (`plugin_id`,`field`,`type`)
  14. ) ENGINE=InnoDB;

使用教程

比如开发springCloud插件时规则表需要存一些配置到handle字段,配置对应的实体类如下:

  1. public class SpringCloudRuleHandle implements RuleHandle {
  2. /**
  3. * this remote uri path.
  4. */
  5. private String path;
  6. /**
  7. * timeout is required.
  8. */
  9. private long timeout = Constants.TIME_OUT;
  10. }

第一步、我们可以直接在插件管理界面 http://localhost:9095/#/system/plugin 点击编辑插件处理 插件处理详解 - 图1

第二步、新增一个字符串类型字段path和一个数字类型的timeout

插件处理详解 - 图2

第三步、在插件规则配置页面新增规则时就可以直接输入path、timeout然后提交保存到handle字段了

插件处理详解 - 图3

注意:如果配置了data_type为3 选择框,则规则新增页面里输入框下拉选择是通过field字段去字典表(soul_dict)查出所有可选项出来展示选择

  • 比如sentinel插件包含多种数据类型的字段,如下图:

插件处理详解 - 图4