Files
liteFlow/docs/quickstart.md
2018-02-28 16:11:10 +08:00

1.8 KiB
Raw Blame History

快速开始

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进行集成