条件组件

在实际业务中,往往要通过动态的业务逻辑判断到底接下去该执行哪一个节点

  1. <chain name="chain1">
  2. <then value="a,c(b|d)"/> <!-- c是路由节点,根据c里的逻辑决定路由到b节点还是d节点,可以配置多个 -->
  3. <then value="e,f,g"/>
  4. </chain>

利用表达式可以很方便的进行条件的判断

c节点是用来路由的,被称为条件节点,这种节点需要继承NodeCondComponent

需要实现方法processCond,这个方法需要返回String类型,就是具体的结果节点

  1. @LiteflowComponent("e")
  2. public class ECmp extends NodeCondComponent {
  3. @Override
  4. public String processCond() throws Exception {
  5. System.out.println("Ecomp executed!");
  6. return "g";
  7. }
  8. }
info" class="reference-link">条件组件 - 图2info

从v2.6.0开始,新增了@LiteflowComponent标签,它是继承于Spring的@Component标签的,所以从作用上来说,和@Component标签并没有什么区别,但是@LiteflowComponent新增加了name属性,用于给组件起别名,在打印调用链的时候会体现。具体请查看步骤打印章节,新版本开始,推荐大家使用@LiteflowComponent,当然@Component也同样可以继续沿用。