精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

強(qiáng)烈推薦強(qiáng)大的規(guī)則引擎框架LiteFlow

開發(fā) 前端
利用LiteFlow,你可以將瀑布流式的代碼,轉(zhuǎn)變成以組件為核心概念的代碼結(jié)構(gòu),這種結(jié)構(gòu)的好處是可以任意編排,組件與組件之間是解耦的,組件可以用腳本來定義,組件之間的流轉(zhuǎn)全靠規(guī)則來驅(qū)動。LiteFlow擁有開源規(guī)則引擎最為簡單的DSL語法。

環(huán)境:SpringBoot2.7.16


1. 簡介

LiteFlow是一個非常強(qiáng)大的現(xiàn)代化的規(guī)則引擎框架,融合了編排特性和規(guī)則引擎的所有特性。

在每個公司的系統(tǒng)中,總有一些擁有復(fù)雜業(yè)務(wù)邏輯的系統(tǒng),這些系統(tǒng)承載著核心業(yè)務(wù)邏輯,幾乎每個需求都和這些核心業(yè)務(wù)有關(guān),這些核心業(yè)務(wù)業(yè)務(wù)邏輯冗長,涉及內(nèi)部邏輯運(yùn)算,緩存操作,持久化操作,外部資源調(diào)取,內(nèi)部其他系統(tǒng)RPC調(diào)用等等。時間一長,項目幾經(jīng)易手,維護(hù)成本就會越來越高。各種硬代碼判斷,分支條件越來越多。代碼的抽象,復(fù)用率也越來越低,各個模塊之間的耦合度很高。一小段邏輯的變動,會影響到其他模塊,需要進(jìn)行完整回歸測試來驗證。如要靈活改變業(yè)務(wù)流程的順序,則要進(jìn)行代碼大改動進(jìn)行抽象,重新寫方法。實時熱變更業(yè)務(wù)流程,幾乎很難實現(xiàn)。LiteFlow為解耦邏輯而生,為編排而生,在使用LiteFlow之后,你會發(fā)現(xiàn)打造一個低耦合,靈活的系統(tǒng)會變得易如反掌!

LiteFlow優(yōu)勢

利用LiteFlow,你可以將瀑布流式的代碼,轉(zhuǎn)變成以組件為核心概念的代碼結(jié)構(gòu),這種結(jié)構(gòu)的好處是可以任意編排,組件與組件之間是解耦的,組件可以用腳本來定義,組件之間的流轉(zhuǎn)全靠規(guī)則來驅(qū)動。LiteFlow擁有開源規(guī)則引擎最為簡單的DSL語法。十分鐘就可上手。

圖片圖片

組件可實時熱更替,也可以給編排好的邏輯流里實時增加一個組件,從而改變你的業(yè)務(wù)邏輯。

圖片圖片

LiteFlow的腳本組件,支持眾多腳本語言,完全和Java打通,你可以用腳本來實現(xiàn)任何邏輯。

圖片圖片

LiteFlow支持把編排規(guī)則和腳本放在數(shù)據(jù)庫,注冊中心中,還有可以任意擴(kuò)展的接口,方便你定制。

圖片圖片

LiteFlow支持你能夠想象處理的任何邏輯流程,如下流程:

圖片圖片

圖片圖片

規(guī)則文件

LiteFlow支持3中格式的規(guī)則文件定義:XML,JSON,YML。以下是XML示例:

<?xml versinotallow="1.0" encoding="UTF-8"?>
<flow>
    <chain name="example_01">
        THEN(a, b, c)
    </chain>
</flow>

規(guī)則說明

THNE:串行執(zhí)行,a執(zhí)行===》執(zhí)行b===》執(zhí)行c

WHEN:并行執(zhí)行

<chain name="chain1">
    WHEN(a, b, c);
</chain>

SWITCH:選擇執(zhí)行

<chain name="chain1">
    SWITCH(a).to(b, c, d);
</chain>

圖片圖片

IF:條件執(zhí)行

IF二元

<chain name="chain1">
    THEN(
        IF(x, a),
        b
    );
</chain>

圖片圖片

其中x為條件節(jié)點,為真的情況下,執(zhí)行鏈路就為x->a->b,為假鏈路就為x->b。

IF三元

<chain name="chain1">
    THEN(
        IF(x, a, b),
        c
    );
</chain>

圖片圖片

還有其它很多的規(guī)則,這里不一一舉例,可以查看官網(wǎng)。

2. 實戰(zhàn)案例

環(huán)境配置

<dependency>
  <groupId>com.yomahub</groupId>
  <artifactId>liteflow-spring-boot-starter</artifactId>
  <version>2.11.4.2</version>
</dependency>

配置文件

#liteflow 配置
liteflow:
  rule-source: flows/*.el.xml


整個規(guī)則流程執(zhí)行如下

圖片圖片


規(guī)則定義

<?xml versinotallow="1.0" encoding="UTF-8"?>
<flow>
    <chain name="processOrder">
        THEN(
          initOrder, 
          IF(amount, discountOrder),
          SWITCH(userType).to(vipDiscountOrder, normalDiscountOrder),
          completeOrder
        )
    </chain>
</flow>

這里的initOrder,amount,discountOrder等都是具體Node接口是bean的名稱。

初始化訂單組件

@Component("initOrder")
public class InitOrderComponent extends NodeComponent {
  @Override
  public void process() {
    System.out.println("初始化訂單...") ;
    Order order = this.getContextBean(Order.class) ;
    double sum = order.getItems().stream().mapToDouble(item -> {
      return item.getPrice().multiply(BigDecimal.valueOf(item.getQuantity())).doubleValue() ;
    }).sum() ;
    order.setTotalAmount(BigDecimal.valueOf(sum));
  }
}

這里只做了計算訂單總額。

判斷訂單總額節(jié)點

@Component("amount")
public class AmountComponent extends NodeIfComponent {


  @Override
  public boolean processIf() throws Exception {
    System.out.println("判斷總金額,超過100元打折") ;
    Order order = this.getContextBean(Order.class) ;
    return order.getTotalAmount().doubleValue() >= 100D ;
  }


}

用戶類型判斷,執(zhí)行哪個節(jié)點

@Component("userType")
public class UserTypeComponent extends NodeSwitchComponent {


  @Override
  public String processSwitch() throws Exception {
    User user = this.getContextBean(User.class) ;
    if (user.isVip()) {
      return "vipDiscountOrder" ;
    }
    return "normalDiscountOrder" ;
  }


}

上面返回的是具體節(jié)點的beanName。

VIP折扣節(jié)點

@Component("vipDiscountOrder")
public class VIPDiscountOrderComponent extends NodeComponent {


  @Override
  public void process() {
    System.out.println("VIP會員打9折") ;
    Order order = this.getContextBean(Order.class) ;
    order.setTotalAmount(order.getTotalAmount().multiply(BigDecimal.valueOf(9)).divide(BigDecimal.valueOf(10), RoundingMode.HALF_UP)) ;
  }
}

普通會員折扣節(jié)點

@Component("normalDiscountOrder")
public class NormalDiscountOrderComponent extends NodeComponent {


  @Override
  public void process() {
    System.out.println("普通會員不打折") ;
  }
}

完成節(jié)點

@Component("completeOrder")
public class CompleteOrderComponent extends NodeComponent  {


  @Override
  public void process() throws Exception {
    System.out.println("訂單折扣執(zhí)行完成,最后收尾...") ;
  }


}

以上是該規(guī)則流程的所有配置及定義。接下來進(jìn)行測試

// 直接注入該類進(jìn)行規(guī)則流程的啟動執(zhí)行
@Resource
private FlowExecutor flowExecutor;


@Test
public void testExample02() {
  Order order = new Order() ;
  order.setId(1L) ;
  order.setSno("S001") ;
  List<OrderItem> items = new ArrayList<>() ;
  items.add(new OrderItem(1L, 2, BigDecimal.valueOf(22))) ;
  items.add(new OrderItem(2L, 1, BigDecimal.valueOf(24.5))) ;
  items.add(new OrderItem(3L, 5, BigDecimal.valueOf(66.3))) ;
  order.setItems(items) ;
  User user = new User() ;
  user.setId(1L) ;
  user.setVip(false) ;
  LiteflowResponse response = flowExecutor.execute2Resp("processOrder", null, order, user);
  if (!response.isSuccess()) {
    Exception e = response.getCause() ;
    e.printStackTrace() ;
  } else {
    System.out.println("流程成功執(zhí)行...") ;
    System.out.println("最終應(yīng)付款:" + response.getContextBean(Order.class).getTotalAmount().doubleValue()) ;
  }
}

控制臺將會輸出詳細(xì)的信息。

圖片圖片

修改用戶類型后執(zhí)行

圖片圖片

以上是本篇文章的全部內(nèi)容,希望對你有所幫助。

責(zé)任編輯:武曉燕 來源: Spring全家桶實戰(zhàn)案例源碼
相關(guān)推薦

2020-02-24 10:06:43

Mac軟件工具

2023-12-22 14:09:08

AI文本編輯器AiEditor

2025-03-26 04:00:01

2011-06-30 17:41:46

SEO

2009-11-04 13:12:33

VB.NET繼承類

2023-07-10 08:44:00

2011-05-16 08:37:56

JavaScript庫

2012-02-03 15:13:27

JavaScript

2011-04-21 14:42:46

CSSHTML工具

2025-08-15 12:19:08

2025-05-13 04:15:00

2012-06-14 11:14:14

運(yùn)維Firefox插件

2011-07-06 13:38:42

Web

2014-04-11 13:12:10

前端技能前端必備

2020-12-17 05:52:09

線程池ThreadPoolThreadPoolE

2020-02-16 10:45:30

Chrome數(shù)據(jù)火狐

2022-05-16 09:20:00

開發(fā)工具

2009-11-04 13:46:36

ADO.NET數(shù)據(jù)庫

2023-12-07 19:13:48

Pythonprint

2022-09-07 11:38:04

async代碼前端
點贊
收藏

51CTO技術(shù)棧公眾號

一区二区在线影院| 只有精品亚洲| 国产人成亚洲第一网站在线播放| 国产成人精品av在线| 91动漫免费网站| 91成人福利| 色成人在线视频| 91传媒免费视频| 免费黄网站在线观看| 美女在线视频一区| 久久久久久久久久久网站| 干b视频在线观看| 成人动态视频| 在线播放中文一区| 激情网站五月天| 牛牛精品在线视频| 国产精品国产自产拍高清av王其| 国产一区二区在线观看免费播放| aaa在线视频| 亚洲三级毛片| 欧美老妇交乱视频| a级黄色免费视频| 九九精品在线| 亚洲国产精品va在线观看黑人| 五月激情婷婷在线| 中文字幕av一区二区三区佐山爱| 一区二区三区精品在线| 亚洲综合网中心| 国产一级免费在线观看| 91啪亚洲精品| 国产二区一区| 亚洲字幕av一区二区三区四区| 国产情侣一区| 久久久之久亚州精品露出| 国产精品99久久久久久成人| 欧美手机在线| 亚洲情综合五月天| 天天插天天射天天干| 成人av影音| 精品国产制服丝袜高跟| 午夜福利123| 欧美一级做a| 欧美日韩aaaaaa| 国产又大又黄又粗又爽| 成人自拍视频网| 在线观看成人小视频| 黄色一级大片在线观看| 欧洲av不卡| 色猫猫国产区一区二在线视频| 欧美日韩一道本| av岛国在线| 岛国av在线不卡| 内射国产内射夫妻免费频道| 亚洲精品一区| 在线一区二区视频| 一道本视频在线观看| 成人涩涩视频| 欧美疯狂性受xxxxx喷水图片| xxww在线观看| av日韩一区| 日韩欧美一区在线观看| 欧美日韩一区二区区别是什么 | 国产成人在线一区二区| 精品欧美一区二区三区免费观看| 亚洲一区日韩| 国产成人91久久精品| 久久久久久久久久一级| 久久精品国产亚洲aⅴ| 成人免费在线网址| 黄色av小说在线观看| 91蜜桃免费观看视频| 欧美日本亚洲| 欧美成人性生活视频| 一个色综合网站| 亚洲中文字幕无码中文字| 欧美大胆成人| 8v天堂国产在线一区二区| 人妻精品久久久久中文字幕69| 成人偷拍自拍| 亚洲欧美日韩网| 秋霞欧美一区二区三区视频免费| 欧美在线免费一级片| 97精品在线观看| 久久精品五月天| 久久超级碰视频| 国产精品国色综合久久| 精品视频三区| 亚洲精品日韩综合观看成人91| www.成年人视频| 456成人影院在线观看| 日韩美女视频一区二区在线观看| 北岛玲一区二区| 99re6这里只有精品| 国语自产精品视频在线看抢先版图片 | 欧美精品一区二区三区中文字幕| 久久精品亚洲国产| av资源免费观看| 国产麻豆视频精品| 免费国产在线精品一区二区三区| 麻豆影视国产在线观看| 欧美日韩国产一区在线| 亚洲天堂av一区二区三区| 亚洲欧美tv| 欧美乱妇40p| 一级片在线免费播放| av在线不卡观看免费观看| 亚洲一二区在线| 中文一区一区三区高中清不卡免费| 欧美日韩国产一级| 国产黄色网址在线观看| 欧美日韩理论| 国产日本欧美一区二区三区| 五月婷婷六月丁香综合| 亚洲乱码一区二区三区在线观看| 欧美成人精品欧美一级乱| 成人资源在线播放| 日韩性生活视频| 一级做a爰片久久毛片| 成人免费看黄yyy456| 国产精品h视频| 欧美日韩激情电影| 亚洲精品日韩丝袜精品| 精品一区在线视频| 国产一区二区三区免费| 天堂√在线观看一区二区| 夜鲁夜鲁夜鲁视频在线播放| 欧美电影免费提供在线观看| 在线日韩国产网站| 美国三级日本三级久久99| 欧美综合77777色婷婷| cao在线视频| 精品伦理精品一区| 深夜福利影院在线观看| 激情五月婷婷综合| 亚洲一区美女| 久久av影院| 日韩三级成人av网| 97国产成人无码精品久久久| 国产日产欧美一区二区三区| av免费播放网址| 亚洲小说图片视频| 全球成人中文在线| 国产最新视频在线| 91黄色免费看| 国产99在线 | 亚洲| 日韩中文字幕区一区有砖一区| 欧美下载看逼逼| 久久久人成影片一区二区三区在哪下载| 日韩精品免费视频| 黄色一级视频免费看| 国产午夜亚洲精品午夜鲁丝片| www.国产区| 成人影院在线| 国产专区欧美专区| 在线视频国产区| 精品久久国产字幕高潮| 一区二区三区视频免费看| www.亚洲国产| 苍井空浴缸大战猛男120分钟| 精品国产一区二区三区噜噜噜| 国产精品高精视频免费| 看黄网站在线观看| 欧美成人官网二区| 国产免费av一区二区| 久久九九久久九九| 久久人人爽av| 国色天香一区二区| 欧美精品一区二区三区在线四季 | 亚洲最大福利网站| av资源在线播放| 亚洲片av在线| 99精品视频在线播放免费| 亚洲成av人片在www色猫咪| 久久久久麻豆v国产精华液好用吗 在线观看国产免费视频 | 国产成人综合亚洲91猫咪| 久久这里只有精品18| 三级小说欧洲区亚洲区| 国产精品狼人色视频一区| 黄色网址在线免费观看| 亚洲精品国产精品国自产在线| 亚洲欧美另类在线视频| 亚洲视频在线一区观看| 最近中文字幕无免费| 美女精品自拍一二三四| 国产一级大片免费看| 亚洲+小说+欧美+激情+另类| 91精品美女在线| 国产精品论坛| 久久精品国产亚洲| 欧美视频免费一区二区三区| 欧美狂野另类xxxxoooo| 尤物视频在线观看国产| 日韩一区在线免费观看| 成人无码www在线看免费| 蜜臀a∨国产成人精品| 青青草国产精品视频| 日韩毛片视频| 久久久久久久久四区三区| 国产色99精品9i| 日韩av免费在线观看| 婷婷丁香在线| 日韩一区二区av| 久色视频在线| 亚洲韩国日本中文字幕| 91片黄在线观看喷潮| 欧美午夜无遮挡| 国产一级一片免费播放| 中文字幕日韩一区| 亚洲精品国产一区黑色丝袜 | 免费一级黄色录像| av成人老司机| 女人扒开双腿让男人捅 | 在线观看的日韩av| 日日噜噜噜夜夜爽爽| 精品国产一区二区三区香蕉沈先生 | 中文字幕+乱码+中文字幕一区| www男人天堂| 国产激情视频一区二区三区欧美| 亚洲欧美自偷自拍另类| 亚洲免费影视| 国产午夜福利100集发布| 欧美色综合网| 黄色一级片国产| 天天操夜夜操国产精品| 日韩久久久久久久| 欧美日韩播放| 欧美婷婷久久| 香蕉久久夜色精品国产更新时间| 国产精品视频在线免费观看| 久久视频社区| 成人免费在线视频网址| 四虎国产精品免费久久| 国产精品亚洲美女av网站| 精品3atv在线视频| 奇米成人av国产一区二区三区| 波多野结衣乳巨码无在线观看| 欧美国产视频一区二区| 曰本三级在线| 欧美劲爆第一页| 国产精品蜜臀| 97视频免费看| 日本在线影院| 国产成人综合久久| 成人自拍视频网| 国产精品爽黄69天堂a| 日韩高清在线| 国产有码在线一区二区视频| 狠狠久久综合| 91精品久久久久久蜜桃| 999久久精品| 国产一区二区三区高清视频| 林ゆな中文字幕一区二区| 精品免费二区三区三区高中清不卡 | 久久视频一区| 黑人粗进入欧美aaaaa| 免费成人在线观看| 亚洲色图欧美自拍| 国产成人av福利| 在线精品一区二区三区| 久久久.com| 日本激情视频一区二区三区| 亚洲人成人一区二区在线观看| 免费在线一区二区三区| 亚洲成av人综合在线观看| 亚洲第一精品在线观看| 欧美少妇xxx| 国产人妖一区二区三区| 精品国产麻豆免费人成网站| 天堂在线中文| 中日韩午夜理伦电影免费| 蜜桃视频在线观看免费视频网站www| 久久这里只有精品99| free性欧美16hd| 国产精品9999| 麻豆国产一区| 免费国产一区二区| 亚洲欧美综合久久久| 老太脱裤子让老头玩xxxxx| 日韩和欧美一区二区| 一级片免费在线观看视频| av成人免费在线观看| 黄色片网站在线播放| 亚洲国产日韩av| 中文字幕精品在线观看| 日韩精品一区二区三区四区| 美女欧美视频在线观看免费 | 大陆成人av片| 手机免费看av| 一区二区三区在线播| 在线观看日本网站| 欧美一区二区三区性视频| 飘雪影视在线观看免费观看| 欧美成人剧情片在线观看| 欧美电影免费观看| 亚洲一区二区三区香蕉| 国产精品免费大片| www精品久久| 蜜臀a∨国产成人精品| 理论片大全免费理伦片| 国产精品久久久久久久岛一牛影视| 国产午夜精品无码| 欧美高清视频不卡网| 国产在线视频网| 韩剧1988在线观看免费完整版| av日韩久久| 天堂资源在线亚洲视频| 一本不卡影院| 香蕉网在线视频| 国产精品午夜免费| 黄色免费av网站| 精品日本一线二线三线不卡| 黄av在线免费观看| 国产精品黄色av| 亚洲国产精品嫩草影院久久av| avav在线播放| 国产自产视频一区二区三区| 香蕉视频久久久| 欧美性猛xxx| 天堂av资源在线| 久久久久久久国产| 狂野欧美xxxx韩国少妇| 亚洲一区二区自拍偷拍| 日本中文字幕不卡| 国产精品高清无码在线观看| 亚洲国产综合人成综合网站| 国产精品久久免费| 精品国产一区av| 欧美暴力调教| 亚洲精品久久区二区三区蜜桃臀| 久久午夜影视| 色欲av无码一区二区三区| 午夜欧美在线一二页| 高清毛片aaaaaaaaa片| 欧美精品videos另类日本| 婷婷综合国产| www.激情网| 国产精品一区二区在线播放 | 一区二区动漫| 亚洲黄色免费在线观看| 精品久久久久久亚洲精品 | 久久天天躁日日躁| 懂色av色香蕉一区二区蜜桃| 伊人婷婷久久| 国产麻豆精品95视频| 欧美激情图片小说| 日韩欧美中文字幕公布| 超碰免费公开在线| 99在线国产| 一区二区国产在线观看| 久久久久久九九九九九| 91九色02白丝porn| 91最新在线| 92裸体在线视频网站| 韩日成人av| 日本黄色网址大全| 色8久久精品久久久久久蜜| 成人在线二区| 91麻豆桃色免费看| 欧美视频不卡| 久久久精品人妻无码专区| 91久久国产最好的精华液| 免费看a在线观看| 99国产精品久久久久老师| 雨宫琴音一区二区在线| xxx在线播放| 欧美日韩高清影院| 欧美另类tv| 久久综合婷婷综合| 蜜臀av一区二区三区| 久久国产精品二区| 国产视频久久久久久久| 巨大黑人极品videos精品| 欧美日韩午夜爽爽| 91麻豆swag| 国产又粗又黄又爽| 久久久这里只有精品视频| 欧美日韩黑人| 在线播放国产视频| 一本到高清视频免费精品| 久久亚洲天堂| 久久99国产精品| 久久精品久久久精品美女| 久草免费在线观看视频| 国产亚洲精品久久久久久牛牛| 国产一区二区三区免费观看在线| 男女激情无遮挡| 国产精品久久久久影院| 欧美一区二区公司| 国产情人节一区| 中文高清一区| 国产黄在线免费观看| 日韩精品一区二区视频| 高清一区二区中文字幕| 国产91在线免费| 一区二区三区资源| 在线日本视频| 欧美日韩一区在线视频| 国产69精品久久777的优势| 亚洲天天综合网| 国产成人极品视频|