workflow - Hello World
2026年1月13日 下午7:21:15
1、新建项目
新建项目之后,添加依赖
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-flow-workflow</artifactId>
</dependency>
2、添加配置
添加应用配置:
solon.flow:
- "classpath:flow/*.yml"
添加流处理配置(支持 json 或 yml 格式),例: flow/demo1.yml
id: "c1"
layout:
- { id: "n1", type: "start", link: "n2"}
- { id: "n2", type: "activity", link: "n3", task: "System.out.println(\"hello world!\");"}
- { id: "n3", type: "end"}
示意图:

3、代码应用
注解模式
@Configuration
public class DemoCom {
//构建工作流执行器
@Bean
public WorkflowExecutor workflowOf(FlowEngine engine) {
return WorkflowExecutor.of(engine,
new NotBlockStateController(), //或 BlockStateController, ActorStateController
new InMemoryStateRepository()); //或 RedisStateRepository
}
@Bean
public void test(WorkflowExecutor workflow) throws Throwable {
//查询任务:查找下一个待处理节点,或者完结的节点
Task task = workflow.findTask("c1", FlowContext.of("i-1"));
System.out.println(task);
//认领任务:权限匹配 + 状态激活(自动前进的会跳过)
//Task task = workflow.claimTask("c1", FlowContext.of("i-1"));
}
}
原生 Java 模式
FlowEngine engine = FlowEngine.newInstance();
WorkflowExecutor workflow = WorkflowExecutor.of(engine,
new NotBlockStateController(), //或 BlockStateController, ActorStateController
new InMemoryStateRepository()); //或 RedisStateRepository
//加载配置
engine.load("classpath:flow/*.yml");
//查询任务
Task task = workflow.claimTask("c1", FlowContext.of("i-1"));
System.out.println(task);