工匠智造文档

java插件开发

新建插件项目及模块

plugin-devConfig

  1. 进入【开发中心/服务插件开发】
  2. 右键左侧空白区域,选择新增项目。项目命名规则:plugin-项目名称-插件模块
    • 名称:插件名称
    • 版本号:插件版本号
    • 项目路径:代码生成路径(自动生成)
    • gitUrl:插件代码仓库路径
  3. 在项目上点击右键,选择新增模块。模块命名规则:plugin-项目名称-大模块名-模块名
    • 标准模块:插件依赖的标准模块
    • 名称:模块名称
    • 版本:模块版本
    • 命名空间:代码自动生成的模块命名空间。规则同 模块命名规则
    • 简称:模块简称
    • 备注:
  4. 目录结构说明:
    • app :插件创建的相关接口实体等
      • controller :插件的接口
      • dto :插件接口中要用到的数据传输对象
      • entity :插件的实体
      • enum :插件实体中要用到的枚举
    • extract :标准服务中要扩展的接口实体
      • entity :标准服务的实体,提供实体的生命周期。新增实体后选择标准服务的实体,选择范围:支持插件开发的标准服务实体
      • interface :标准服务的接口,提供调用前、调用后方法。新增接口后选择标准服务的接口,选择范围:支持插件开发的标准服务接口
  5. 生成代码:保存后选中模块点击,平台会自动生成插件的代码。开发人员可直接从git上拉取。

插件项目目录结构

├─java
│ ├─app
│ │  ├─config                配置类             平台生成覆盖
│ │  ├─controller            controller定义     平台生成覆盖
│ │  ├─model                 实体modal          平台生成
│ │  ├─param                 接口请求参数        平台生成覆盖
│ │  └─service
│ │      └─imp              接口实现类
│ ├─base
│ │  ├─dto                  dto定义      平台生成覆盖
│ │  ├─entity               实体定义      平台生成覆盖
│ │  ├─enumerate            枚举定义      平台生成覆盖
│ │  └─mapper               mapper定义   平台生成覆盖
│ └─extract
│    ├─controller        标准服务接口插件,提供调用前、后方法
│    └─entity            标准实体插件,提供实体生命周期
└─resources
│    ├─plugin-mapper    xml文件    平台生成覆盖
│    └─sql              sql文件    平台生成覆盖

插件配置信息

插件配置信息由低代码平台自动生成至插件pom文件中。pluginInfo中的id为插件id,必须是租户code,否则插件不生效。

plugin-log

插件启动及调试

插件是依附于标准服务,所以启动插件前确保标准服务能正常启动。

在标准服务的配置文件中添加配置【plugin.mainPackage=主程序包名(eg:cn.cw.app.sps.project)】,否则主程序无法启动。

将插件打包成jar包后放置标准服务目录 \plugins下,标准服务启动时会自动启动插件。若控制台输出插件初始化完成则插件启动成功

plugin-log

将插件代码和标准服务代码放置同一级中(在同个idea窗口打开),可使用idea调试工具调试插件。

插件发布

  1. 将插件打包成jar

  2. 进入【开发中心/服务插件管理】,选择标准服务模块,上传jar包,点击左下角启动。启动时平台会自动执行插件生成的实体、接口相关sql脚本。

    plugin-manager

注意事项

  1. 调用插件的接口: 模块服务名/api/plugin/plugin.id(pom文件中pluginInfo.id)/接口路径 例:/app/base/uc/api/plugin/gjzz/api/user/getUserAuth
  2. 一个模块下不允许存在重复id插件
  3. 若想引用主程序未引用的包,请自行在pom文件中引用
Tags: java