qlexpress - QLExpress 規則引擎 簡單案例

QLExpress官方git地址: https://github.com/alibaba/QLExpress

案例:

案例:沒有房產,租房住的人每個月可以領取1000元的住房補貼。

兩個條件:1 沒有房產,2 租房住。

首先引入QLExpress

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>QLExpress</artifactId>
  <version>3.2.0</version>
</dependency>

項目結構一覽

項目結構

PersonInfo類
PersonInfo
PersonServ類
PersonServ類

RunnerUtil類
RunnerUtil類
MacroEnum類
MacroEnum類

此時項目結構已經搭建完成。

方法調用,結果展示

在RunnerUtil中新建一個方法,用於判斷用戶是否具有領取租房補貼的權利
在這裏插入圖片描述

在main方法中調用測試

在這裏插入圖片描述

輸出結果(設置了isTrace爲true,所以會跟蹤步驟,易於調試)
在這裏插入圖片描述

結果解析
在這裏插入圖片描述

執行流程

  1. 首先在expressRunner用中文替換了一些基本操作符。
  2. 然後用中文綁定了java類中的方法,比如"是否有房產"綁定了PersonServ中的hasHouse方法。
  3. 定義了一些macro宏定義的枚舉類。列如"有房產",調用了"是否有房產"方法,傳入了person1
  4. 調用,定義一個personInfo實體類,傳入判斷條件爲"無房產 並且 租房住"。
  5. 這時候ql會調用"無房產"宏定義,"無房產"宏定義調用了"是否有房產"方法,在"是否有房產"方法中,取出personInfo中的hasHouse屬性,爲0,與傳入的0做比較,相等,則返回true,表示此用戶無房產。
  6. 之後調用"租房住"宏定義,"租房住"宏定義調用了"是否租房住"方法,在"是否租房住"方法中,取出personInfo中的rentHouse屬性,爲0,與傳入的1做比較,不相等,則返回false,表示用戶並不是租房住的。
  7. 因爲是 並且 操作符,true加false 爲false。所有最終返回結果爲false。
  8. false表示用戶沒有領取租房補貼的權利。
  9. 自此,執行完畢。

總結

有點煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章