服务端开发
实现组件扩展接口
1. 实现接口 IProcess
,重写其方法。
提示
注意:组件类开发完后要在其类上加注解 @Service
,确保该类在项目spring的扫描目录下。
IProcess 类属性说明
方法 | 说明 |
---|---|
String getName(); | 组件唯一标识,如:mysqlQueryProcess |
void process(ProcessContent processContent); | 组件执行逻辑,用户在此方法内实现组件功能。 |
2. 使用 注解
开发
注解及属性说明
注解 | 说明 | 属性 | 属性说明 | 属性默认值 |
---|---|---|---|---|
@ManateeScan("xxx.xxxx") | 启动类注解,加在启动类上,不添加组件无法实现 | |||
@ManateeService | 标识该类为组件类 | |||
@ManateeProcess | 组件执行逻辑,在标识方法内实现组件功能 | code | 组件英文名称 | 空字符串 |
name | 组件中文名称 | 空字符串 | ||
@ManateeParams | 组件入参 | required | 是否必填 | false |
allowMultiple | 是否是list | false | ||
dataType | 参数类型 | 空字符串 | ||
dataTypeClass | 参数类型 | Void.class | ||
value | 映射对象 |
注入类
@Resource
protected IInputUtil inputUtil;
@Resource
protected IOutputUtil outputUtil;
@Resource
private VariableUtil variableUtil;
Api说明
描述 | Api |
---|---|
获取上下文中的字符串内容,并动态替换${xxx} | variableUtil.calVarInConf(processContent,key); |
获取流程图中配置值 | processContent.getStepConfString(key); |
获取上下文中变量值 | processContent.getValue(key); |
获取数据处理后内容(当handleType为batch时,获取批量数据处理后的结果) | inputUtil.getHandleObject(processContent,Key); |
设置默认返回值的对象名 | outputUtil.setDefaultReturnKey(processContent,defaultReturnKey); |
对内容进行数据处理 | inputUtil.getHandleMapConf(processContent, queryParamsObj); |
把数据放入返回, 默认对象名为outputData | outputUtil.putData(processContent,value); |
结果对象名 | 引擎内置统一,不可更改。 |
在返回中显示 | 引擎内置统一,不可更改。 |
抛出异常 | throw new BizException(ResultCode.SYSTEM_ERROR,"params is not json") |
示例
- 实现接口
IProcess
,重写其方法
@Service
public class DemoProcess implements IProcess {
@Resource
protected IOutputUtil outputUtil;
@Resource
private VariableUtil variableUtil;
@Override
public void process(ProcessContent processContent) throws BizException {
String name = variableUtil.calVarInConf(processContent, "name");
String result = "hello " + name;
outputUtil.putData(processContent, result);
}
@Override
public String getName() {
return "demoProcess";
}
}
- 使用
注解
开发
@Service
@ManateeService
public class xxxxxProcess {
@ManateeProcess(name = "组件中文名", code = "xxxxxProcess")
public JSONObject getUserTaskExtProperties(@ManateeParams("param1") String param1) throws BizException {
JSONObject jsonObject = new JSONObject();
// TODO: 业务逻辑
return jsonObject;
}
}