精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

国产高清视频免费在线观看| 秋霞无码一区二区| japanese国产| 亚洲一区成人| 在线一区二区日韩| 中文字幕第三区| 午夜影院在线播放| 亚洲视频一区在线| 精品在线观看一区二区| 中文字幕av片| 亚洲三级电影在线观看| 在线视频日韩精品| 久久性爱视频网站| 久久影视精品| 欧美日韩一区二区免费视频| 中文字幕黄色大片| 欧美午夜黄色| 国产激情一区二区三区四区| 国产成人精品久久亚洲高清不卡| 日韩精品欧美专区| 99久久国产免费| 老司机精品视频网站| 美女精品视频一区| 亚洲一区二区自偷自拍| 风间由美性色一区二区三区四区| 欧美日韩国产成人在线免费| 男人天堂网视频| 草莓视频丝瓜在线观看丝瓜18| 国产精品久久一级| 欧日韩一区二区三区| 人妻中文字幕一区| 国产在线视视频有精品| 国产精品久久久av| 日本韩国欧美中文字幕| 激情自拍一区| 欧美国产日本高清在线| 在线观看美女av| 成人vr资源| 国产视频精品免费播放| 四虎成人免费视频| 丁香六月综合| 色综合中文字幕国产| 欧美久久久久久久久久久久久| 性欧美videoshd高清| 国产精品免费看片| 水蜜桃一区二区| 91高清在线视频| 国产网站一区二区| 日本日本精品二区免费| 欧美zozo| 国产午夜精品久久久久久免费视| 蜜桃av噜噜一区二区三区| 欧美一区二区三区激情| 粉嫩绯色av一区二区在线观看| 亚洲一区二区三区毛片| 一区二区美女视频| 精品一区二区免费看| 成人在线小视频| 国产伦精品一区二区三区免.费| 久久国产精品第一页| 国产免费成人av| 91影院在线播放| 国产精品一区二区在线观看不卡| 亚洲一区二区三区久久| 亚洲AV无码一区二区三区性 | 亚洲三级久久久| 最新欧美日韩亚洲| 免费不卡av| 午夜精品久久一牛影视| 免费看日本毛片| 伊人久久在线| 欧美日韩精品一区二区| 五月天婷婷在线观看视频| 午夜日韩影院| 日韩www在线| www.av天天| 久久久久久久久国产一区| 欧美激情2020午夜免费观看| 国产午夜福利片| 六月婷婷一区| 欧美在线免费视频| 最近中文在线观看| 国产河南妇女毛片精品久久久| 国产一区二区视频在线免费观看| 欧美日韩在线中文字幕| ●精品国产综合乱码久久久久| 黄色成人在线免费观看| 大胆人体一区二区| 91精品国产色综合久久不卡蜜臀| 精品影片一区二区入口| 青青一区二区三区| 欧美极度另类性三渗透| 免费在线观看av的网站| 国产成a人亚洲精品| 日本精品视频一区| 青草视频在线免费直播| 欧美影院一区二区| 久久久久无码国产精品一区李宗瑞 | 日韩影院一区| 成人在线视频亚洲| 色妹子一区二区| aaaaa黄色片| 国产传媒欧美日韩成人精品大片| 中文字幕最新精品| 日本最新中文字幕| 精品一区二区三区不卡 | 国产精品黑丝在线播放| 51视频国产精品一区二区| 97av免费视频| 久久久亚洲欧洲日产国码αv| 日韩人妻一区二区三区蜜桃视频| 毛片无码国产| 亚洲国产私拍精品国模在线观看| 在线看的片片片免费| 久久香蕉精品| 国产一区二区不卡视频在线观看| 男女啪啪在线观看| 在线中文字幕一区二区| 欧美性生交xxxxx| 天天操夜夜操国产精品| 日韩av免费在线播放| 免费观看a视频| 亚洲日本青草视频在线怡红院| 日日摸天天爽天天爽视频| 成人另类视频| 欧美黄色免费网站| 国产成人麻豆精品午夜在线| 国产精品系列在线| 欧美激情精品久久久久久小说| 福利电影一区| 久久久噜久噜久久综合| 国产丝袜在线视频| 成人欧美一区二区三区白人| 亚洲欧美另类动漫| 国产尤物久久久| 日韩av观看网址| 精品美女视频在线观看免费软件 | www.av日韩| 亚洲免费伊人电影| 亚洲第一区第二区第三区| 日本高清免费电影一区| 国产精品国语对白| 国产在线一二| 在线看国产一区| 无码少妇一区二区| 男人的天堂亚洲一区| 亚洲成色最大综合在线| 国产精品天堂蜜av在线播放| 中文字幕亚洲天堂| 国产又粗又猛又爽又黄视频| 亚洲视频在线一区观看| www.成人黄色| 亚洲欧美文学| 国产日韩精品推荐| 日韩伦理福利| 宅男66日本亚洲欧美视频| 中日韩av在线| 亚洲欧美日韩国产手机在线| 在线观看欧美一区二区| 亚洲国产三级| 欧美污视频久久久| 国产情侣一区二区三区| 久久影院资源网| 亚洲精品久久久久久久久久| 亚洲成人动漫在线观看| 欧美深性狂猛ⅹxxx深喉| 欧美一级视频| 一本久久a久久精品vr综合| 2019中文亚洲字幕| 久久久久久91| 国产精品久久久久一区二区国产| 在线精品视频免费观看| 99热这里只有精品4| 国产成人综合亚洲91猫咪| 阿v天堂2017| 欧美中文字幕一区二区| 亚洲qvod图片区电影| 交100部在线观看| 在线精品国产欧美| 超碰在线人人干| 日韩欧美国产一区二区| 你懂得在线观看| 成人在线视频一区| 三区视频在线观看| 欧美一区二区三区在线观看免费| 欧美三级视频在线播放| 久久高清内射无套| 成人毛片视频在线观看| 免费av网址在线| 色97色成人| 国产欧美欧洲| 99久久婷婷国产综合精品首页 | 国产精品成人99一区无码| 日韩中文字幕不卡| 国产精品视频二| 成人三级视频| 精品国产一区二区三| 91成人精品观看| 欧美亚洲免费电影| 91网在线看| 尤物99国产成人精品视频| 精品黑人一区二区三区在线观看| 色婷婷综合久久久中文一区二区| 免费国产羞羞网站美图| 久久精品视频免费| 欧美日韩在线免费视频| 欧美做爰啪啪xxxⅹ性| 久久综合色播五月| wwwxxx色| 精品在线播放午夜| 国产成人久久777777| 欧美日韩亚洲国产精品| 亚洲激情一区二区三区| 欧美丝袜美腿| 波多野结衣一区二区三区在线观看 | 日韩在线一区二区| 一级性生活视频| 成人国产精品一级毛片视频| 精品无码久久久久久久动漫| 四虎视频在线精品免费网址| 青青精品视频播放| 国产精品xx| 久久久免费电影| а√天堂在线官网| 色偷偷噜噜噜亚洲男人| 极品美乳网红视频免费在线观看| 亚洲国产精品久久久久久| 国产美女www爽爽爽视频| 欧洲另类一二三四区| 青青国产在线观看| 亚洲国产wwwccc36天堂| 1024手机在线视频| 亚洲视频在线一区| 女同久久另类69精品国产| 久久老女人爱爱| 91亚洲免费视频| 欧美 日韩 中文字幕| 欧美日韩一区二区不卡| 国产精品va无码一区二区三区| 一区二区三区日韩欧美精品| 国产精成人品localhost| 成人直播视频| 欧美有码在线视频| 欧美亚洲日本精品| 性欧美长视频免费观看不卡| 欧美xxxbbb| 欧美高清一级大片| 91小视频xxxx网站在线| 久久高清视频免费| 182tv在线播放| 欧美日韩爱爱视频| 不卡av免费观看| 97视频免费在线观看| 高潮在线视频| 欧美中文字幕在线观看| 香蕉成人av| 国产精品免费看久久久香蕉| 黄色精品视频网站| 91老司机在线| 999精品视频在这里| 国内一区在线| 激情婷婷综合| 亚洲欧美日韩精品在线| 天天做天天爱天天综合网2021| 国产成人精品免费看在线播放| 欧美1区2区| 国产资源在线视频| 日韩电影免费在线观看网站| www.99r| 国产高清不卡二三区| 韩国无码一区二区三区精品| 国产亚洲污的网站| www.xxxx日本| 欧美日韩中文字幕在线| 自拍偷拍色综合| 欧美一区二区三区日韩视频| 六月丁香综合网| 国产精品夫妻自拍| 亚洲色偷偷综合亚洲av伊人| 亚洲一区免费视频| 日韩手机在线视频| 91精品免费观看| 深夜福利在线观看直播| 国产一区二区三区毛片| av网站网址在线观看| 97视频色精品| 欧美亚洲黄色| 精品国产一区二区三区麻豆免费观看完整版 | 2020日本在线视频中文字幕| 69av在线视频| 国产精品成人3p一区二区三区| wwwxx欧美| 精品国精品国产自在久国产应用| 黑人巨大国产9丨视频| 99riav1国产精品视频| www.com操| 99精品视频在线观看| 日本黄色录像视频| 欧美视频免费在线观看| 国产免费不卡视频| 亚洲一级免费视频| 精品精品导航| 成人妇女淫片aaaa视频| 香蕉久久99| 国产精品www在线观看| 理论片日本一区| 亚洲欧美视频在线播放| 亚洲私人影院在线观看| 成人免费一级片| 日韩精品极品在线观看| h网站久久久| 国产精品视频久久久| 欧美电影在线观看完整版| 亚洲精品天堂成人片av在线播放| 日韩专区在线视频| 538国产视频| 亚洲自拍偷拍综合| 国产精品自产拍| 综合国产在线视频| 唐人社导航福利精品| 狠狠干一区二区| 欧美午夜一区二区福利视频| 午夜一区二区视频| 国产精品视频免费看| 五月天婷婷导航| 亚洲精品国产精品国自产观看浪潮| 羞羞视频在线观看免费| 亚洲一区二区中文字幕| 99久久久久国产精品| 国产九九热视频| 中文字幕精品三区| 国产黄色免费视频| 亚洲码在线观看| 中文字幕资源网在线观看免费| 国产精品久久久久久久久久久久冷| 香蕉av一区二区| 中文字幕 欧美日韩| 国产精品久久久久一区 | 久久午夜影视| 日本少妇高潮喷水xxxxxxx| 欧美视频不卡中文| 青青草在线免费观看| 欧美亚洲国产另类| 亚洲精品亚洲人成在线观看| 人妻熟女一二三区夜夜爱| ww久久中文字幕| 欧美日韩综合一区二区三区| 亚洲人成电影在线| 最新欧美电影| 亚洲精品乱码视频| 捆绑变态av一区二区三区| 亚洲欧美另类日本| 日韩欧美一区在线| 毛片在线导航| 久久精品国产99精品国产亚洲性色| 亚洲免费网址| 久久精品三级视频| 欧美精品一二三| 人人超在线公开视频| 国产在线资源一区| 久久精品亚洲一区二区| 成年人在线免费看片| 欧美日本韩国一区二区三区视频| 成人在线app| 好吊妞www.84com只有这里才有精品| 国产精品久久久免费 | 五月婷婷丁香花| 国产成人精品视| 婷婷精品进入| 尤物网站在线观看| 色国产综合视频| www.久久久久.com| 精品九九九九| 免费观看在线综合色| 青青草手机视频在线观看| 日韩av在线影院| 免费在线成人激情电影| 麻豆传媒网站在线观看| 91蜜桃传媒精品久久久一区二区| 国产女优在线播放| 欧美片一区二区三区| 中文字幕精品影院| 国产成人美女视频| 亚洲成av人片www| av在线免费观看网| 国产精品白丝jk白祙| 日本中文字幕不卡| 加勒比av在线播放| 国产一区二区三区中文| 亚洲一区二区三区免费| 成人在线观看黄| 亚洲一线二线三线视频| 第一页在线观看| 国产一级特黄a大片99| 狠狠网亚洲精品| 久久久久久亚洲av无码专区| 欧美大片免费观看| 日本不卡免费一区| 久久久无码人妻精品一区| 欧美一区二区国产|