mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 20:22:07 +08:00
1.8 KiB
1.8 KiB
快速开始
liteflow需要你的项目使用maven
依赖
<dependency>
<groupId>com.thebeastshop.liteflow</groupId>
<artifactId>liteflow</artifactId>
<version>${liteFlow.version}</version>
</dependency>
流程配置文件
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<nodes>
<node id="a" class="com.thebeastshop.liteflow.test.component.AComponent"/>
<node id="b" class="com.thebeastshop.liteflow.test.component.BComponent"/>
<node id="c" class="com.thebeastshop.liteflow.test.component.CComponent"/>
<node id="d" class="com.thebeastshop.liteflow.test.component.DComponent"/>
<node id="e" class="com.thebeastshop.liteflow.test.component.EComponent"/>
</nodes>
<chain name="demoChain">
<then value="a,b,c"/> <!-- then表示串行 -->
<when value="d,e"/> <!-- when表示并行 -->
</chain>
</flow>
component为组件,这里你需要实现这些组件,每个组件继承NodeComponent类
public class AComponent extends NodeComponent {
@Override
public void process() {
String str = this.getSlot().getRequestData();
System.out.println(str);
System.out.println("Acomponent executed!");
}
}
chain为流程链,每个链上可配置多个组件节点。目前执行的模式分串行和并行2种。
串行标签为then,并行标签为when。
在串行的模式下,以下2种写法是等价的,可以根据业务需要来把不同种类的节点放一行里。
<then value="a,b,c,d"/>
<then value="a,b"/>
<then value="c,d"/>
执行流程链
FlowExecutor executor = new FlowExecutor();
executor.setRulePath(Arrays.asList(new String[]{"/config/flow.xml"}));
executor.init();
Slot slot = executor.execute("demoChain", "arg");
如果你的项目使用spring,推荐参考和Spring进行集成