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