liteFlow开发应用搭建

架构设计

liteFlow开发应用搭建_第1张图片

轻量级流程编排框架liteFlow_zhousenshan的博客-CSDN博客_流程编排框架

一、 springboot搭建

引入依赖

        
            com.yomahub
            liteflow-spring-boot-starter
            2.8.4
        

路径规则配置

liteflow:
  rule-source: config/flow.el.xml

组件配置 

 Liteflow希望用户把复杂逻辑拆分成一个个可复用的组件,定义组件需要继承NodeComponent类,然后实现process 方法就行

同时组件除了必须要实现的process 方法,还有几个可选实现:

isAccess:表示是否进入该节点,可以用于业务参数的预先判断

isContinueOnError:表示出错是否继续往下执行下一个组件,默认为false

isEnd:表示是否立即结束整个流程 ,默认为false,也可以在业务日志里根据业务判断来调用this.setIsEnd(true)来结束整个流程。

你只需定义你的业务组件,之后,在启动时,Liteflow会自动扫描到你定义的所有组件,并进行加载。

@LiteflowComponent(id = "cc", name = "xx")
public class cc extends NodeComponent {
    @Override
    public void process() {
        //实现业务逻辑

    }

    @Override
    public boolean isAccess() {
      
        //这里做你的参数检查,如果没获取到必须的业务参数,就不会进入该组件
       //模拟检查结果为true
        return true;
    }

    @Override
    public boolean isContinueOnError() {
        //报错后继续执行其他节点
        return true;
    }

    @Override
    public boolean isEnd() {
        return super.isEnd();//默认为false
    }

}

编辑规则文件

 在Liteflow中,定义了then和when两种线程执行方式。

then代表串行,上面的示例中,bb必须要等cc执行完才能执行。



    
        THEN(cc,bb);
    


 when代表并行,示例中,cc,dd同时执行。



    
        WHEN(cc,bb);
    


Liteflow允许你编辑嵌套的流程: 

这两条链路是串起来执行的,在xml里,可以写你的组件id,也可以写流程id。


    
        WHEN(cc,test1);
    

    
        WHEN(bb);
    

流程启动 

@Component
public class TestFlow{

    @Resource
    private FlowExecutor flowExecutor;

    @Override
    public void run(String... args) throws Exception {

        //参数为流程ID,无初始流程入参,返回类型为默认上下文泛型的Response
        //public LiteflowResponse execute2Resp(String chainId)
        //第一个参数为流程ID,第二个参数为流程入参。其中流程入参可以在组件中通过this.getRequestData()来        获得。
        //public LiteflowResponse execute2Resp(String chainId, Object param);
        //第一个参数为流程ID,第二个参数为流程入参,第三个参数为自定义的上下文Bean类型
        //public  LiteflowResponse execute2Resp(String chainId, Object param, Class  contextBeanClazz)
        
        Slot slot = flowExecutor.execute2Resp("test");
        System.out.println(slot);
    }
}

总结

1.引入依赖
2.配置配置文件路径
3.配置组件节点 继承 NodeComponent
4.配置节点执行顺序 配置 flow.el.xml
5.启动流程 
 @Resource
    private FlowExecutor flowExecutor;

你可能感兴趣的:(java,spring,boot)