LiteFlow特性:选择编排Switch

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、案例说明

二、实践过程

总结


前言

原来不打算专门写这么细的一章,但是我自己实践过程中发现,框架还是有不少限制,但是没有在官方文档或者其他博客里提到,所以初次接入的人会特别郁闷,怎么调试都不好使。

话不多说,开始今天的章节吧。


提示:以下是本篇文章正文内容,下面案例可供参考

一、案例说明

我们今天做一个选择编排的简单案例。

实现的效果是:先执行a,然后根据a的结果来决定下一步是执行b还是c

二、实践过程

首先,因为是根据a的结果进行不同的选择,所以a应当是一个switch类型的节点

@LiteflowComponent("a")
public class ASwitchCmp extends NodeSwitchComponent {

	@Override
	public String processSwitch() throws Exception {
		return "b";
	}

}

其次,b和c没有选择逻辑,作为正常节点创建

@Component("b")
public class BNode extends NodeComponent {

    @Override
    public void process() {
        System.out.println("b");
    }

}
@Component("c")
public class CNode extends NodeComponent {

    @Override
    public void process() {
        System.out.println("c");
    }

}

xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<flow id="loanFlow">
	<chain id="defaultLoanAuditChain">
        SWITCH(a).to(b, c)
    </chain>
</flow>

首先说一下,这种写法是可以通过的。

接下来,我们说一下其他的一些情况

场景1:NodeSwitchComponent类是NodeComponent类的子类,如果我们将b或者c定义为NodeSwitchComponent类的子类,那么程序就不会按照设想的去执行。

场景2:a节点返回的字符串,是下个节点的beanname,这个地方没有很明确的说明

场景3:如果要设计的严谨一些,那么一定会有一些非正常的情况,这些可以都放在一个节点里,作为default节点,要注意的是default节点,也是普通节点。这里解释一点:日志里提示的node的类型为COMMON,等价于该节点类继承NodeComponent类

最后分享一个接入过程的小妙招:从最最简单的语法,一步步来,慢慢添砖加瓦


总结

每天进步一点点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值