集成LiteFlow到Spring Boot 3
在Spring Boot 3项目中引入LiteFlow依赖,需在pom.xml中添加以下配置:
XML
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-spring-boot-starter</artifactId>
<version>2.10.5</version>
</dependency>
配置流程规则文件
在resources目录下创建规则文件flow.el.xml,定义业务节点和流程逻辑:
XML
<flow>
<chain name="orderProcess">
THEN(
createOrder,
paymentCheck,
inventoryDeduction,
sendNotification
);
</chain>
</flow>
定义业务节点组件
创建Java组件类并继承NodeComponent,使用@LiteflowComponent注解标记:
java
@LiteflowComponent("createOrder")
public class CreateOrderNode extends NodeComponent {
@Override
public void process() {
// 订单创建逻辑
}
}
@LiteflowComponent("paymentCheck")
public class PaymentCheckNode extends NodeComponent {
@Override
public void process() {
// 支付校验逻辑
}
}
执行流程编排
通过LiteflowExecutor触发流程执行:
java
@RestController
public class OrderController {
@Autowired
private LiteflowExecutor liteflowExecutor;
@PostMapping("/createOrder")
public String createOrder() {
LiteflowResponse response = liteflowExecutor.execute2Resp(
"orderProcess", null, OrderContext.class
);
return response.isSuccess() ? "success" : "fail";
}
}
动态规则配置
支持通过数据库或配置中心动态更新规则:
java
@Autowired
private FlowParser flowParser;
public void refreshRule(String newRuleContent) {
flowParser.parseFlowRule(newRuleContent);
}
复杂流程示例
实现条件分支和并行处理:
XML
<chain name="complexFlow">
THEN(
A,
WHEN(
IF(x, B),
IF(y, C)
),
D
);
</chain>
性能优化建议
对于高频调用的流程,可启用流程缓存:
properties
liteflow.flow-parser-class=com.yomahub.liteflow.parser.el.ClassXmlFlowELParser
liteflow.enable-monitor=true
liteflow.monitor.enable-log=true
异常处理机制
自定义全局异常处理器:
java
@Slf4j
public class CustomLiteflowExceptionHandler implements LiteflowExceptionHandler {
@Override
public void handleException(NodeComponent component, Exception e) {
log.error("流程执行异常: {}", component.getNodeId(), e);
}
}