插件处理详解
#
说明- 在soul-admin后台,每个插件都用handle(json格式)字段来表示不同的处理,而插件处理就是用来管理编辑json里面的自定义处理字段。
- 该功能主要是用来支持插件处理模板化配置的
#
表设计- sql
CREATE TABLE IF NOT EXISTS `plugin_handle` ( `id` varchar(128) NOT NULL, `plugin_id` varchar(128) NOT NULL COMMENT '插件id', `field` varchar(100) NOT NULL COMMENT '字段', `label` varchar(100) DEFAULT NULL COMMENT '标签', `data_type` smallint(6) NOT NULL DEFAULT '1' COMMENT '数据类型 1 数字 2 字符串 3 下拉框', `type` smallint(6) NULL COMMENT '类型,1 表示选择器,2 表示规则', `sort` int(4) NULL COMMENT '排序', `ext_obj` varchar(1024) DEFAULT NULL COMMENT '额外配置(json格式数据)', `date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `date_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `plugin_id_field_type` (`plugin_id`,`field`,`type`)) ENGINE=InnoDB;
#
使用教程比如开发springCloud插件时规则表需要存一些配置到handle字段,配置对应的实体类如下:
public class SpringCloudRuleHandle implements RuleHandle { /** * this remote uri path. */ private String path; /** * timeout is required. */ private long timeout = Constants.TIME_OUT; }
第一步、我们可以直接在插件管理界面 http://localhost:9095/#/system/plugin
点击编辑插件处理
第二步、新增一个字符串类型字段path和一个数字类型的timeout
第三步、在插件规则配置页面新增规则时就可以直接输入path、timeout然后提交保存到handle字段了
注意:如果配置了data_type为3 选择框,则规则新增页面里输入框下拉选择是通过field字段去字典表(soul_dict)查出所有可选项出来展示选择。
- 比如sentinel插件包含多种数据类型的字段,如下图: