常量庫文(wén)件

​ 在業務(wù)系統開發過程中(zhōng),常常會用(yòng)到一個枚舉數據,比如用(yòng)戶的性别、學(xué)曆等,在URule Pro當中(zhōng),通過定義常量庫文(wén)件,可(kě)以将系統中(zhōng)使用(yòng)的這些枚舉數據映射到規則中(zhōng)使用(yòng),這樣就可(kě)以避免規則定義過程中(zhōng)枚舉數據手工(gōng)輸入存在錯誤的可(kě)能(néng)性。

​ 在“庫”節點上右鍵,創建一個常量庫文(wén)件,如下图所示:

​ 與變量庫文(wén)件類似,常量也是由分(fēn)類和具(jù)體(tǐ)的常量值構成,比如性别有(yǒu)男女之分(fēn),那麽這裏的“性别”就屬性分(fēn)類,“男”、“女”就屬性具(jù)體(tǐ)的常量值。在常量的分(fēn)類中(zhōng),“名(míng)稱”一般定義具(jù)體(tǐ)的分(fēn)類名(míng),“标題”是一段描述(比如“性别”是标題,“gender”是名(míng)稱),同樣這個标題也會出現在規則引用(yòng)當中(zhōng);加好分(fēn)類後就可(kě)以添加這個分(fēn)類下具(jù)體(tǐ)的常量值,常量值也有(yǒu)名(míng)稱和标題之分(fēn),名(míng)稱是具(jù)體(tǐ)的常量值,标題則是描述,比如“男”是标題,"true"是名(míng)稱,同樣“女”是标題,“false”是名(míng)稱。

​ 同樣,在一個常量庫文(wén)件中(zhōng)可(kě)以根據需要添加多(duō)個常量分(fēn)類。

常量定義時,其名(míng)稱值可(kě)使用(yòng)Spring中(zhōng)加載的properties文(wén)件值,具(jù)體(tǐ)使用(yòng)方法是将要引用(yòng)的properties的key值用(yòng)${...}包裹,這樣在具(jù)體(tǐ)規則運行時會動态查找這個包裹的屬性值作(zuò)為(wèi)具(jù)體(tǐ)的常量,如:${app.title}表示取spring中(zhōng)properties文(wén)件的名(míng)為(wèi)app.title的屬性值。利用(yòng)這一功能(néng),可(kě)實現測試環境與生産(chǎn)環境的動态切換。

常量類型 說明
String 字符串
Char 單個字符,如果值設置的是字符串,隻會返回字符串的第一個字符
Integer 整型
Long 長(cháng)整型
Float 單精(jīng)度浮點型,超出位數将被截取
Double 雙精(jīng)度浮點型,超出位數将被截取
BigDecimal 高精(jīng)度類型
Boolean 布爾型,值設置參考Boolean.valueOf
Date 時間類型,輸入時間格式有(yǒu):yyyy-MM-dd HH:mm:ss、yyyy-MM-dd HH:mm、yyyy-MM-dd
List ArrayList集合,值的設置方式為(wèi):
基礎類型集合:s4,s1,s2,s3
複雜類型集合:[{"id":"4","name":"user4"},{"id":"1","name":"user1"}]
Set TreeSet集合,值的設置方式為(wèi):
基礎類型集合:s8,s5,s6,s7
複雜類型集合:[{"a1":"s8"},{"a1":"s5"},{"a1":"s6"},{"a1":"s7"}]
Map HashMap集合,值的設置方式為(wèi):JSON格式,比如:{"a":"1","b":"2","c":"3"}
Enum 任意值
Object 任意值

常量庫維護的3種方式

手工(gōng)添加

​ 如上述的操作(zuò)過程。

從Java枚舉類中(zhōng)直接導入

(1)常量庫文(wén)件在定義時支持從一個具(jù)體(tǐ)的Java枚舉類中(zhōng)直接導入,方法是在常量分(fēn)類上右鍵【根據類路徑生成常量】,在彈出的窗口中(zhōng)輸入完整的枚舉類路徑,如下图所示:

img

(2)在點擊【确定】按鈕後,即可(kě)實現将枚舉類裏的枚舉值導入到當前常量分(fēn)類之下,如下图所示:

img

(3)枚舉類代碼

在通過枚舉類導入具(jù)體(tǐ)常量時,如果枚舉類中(zhōng)未定義getLabel方法,那麽導入的枚舉信息則隻采用(yòng)其name屬性,如果定義了getLabel方法,那麽導入後的枚舉信息則包含name和label,包含getLabel方法的枚舉類示例如下所示:

package 
public enum TestEnum {
    aaa("張三"),bbb("李四");
    private String label;
    private TestEnum(String label) {
        this.label=label;
    }
    public String getLabel() {
        return label;
    }
}

excel導入

(1)在excel中(zhōng)作(zuò)如下定義,注意sheet頁(yè)名(míng)稱是常量的分(fēn)類名(míng),表格列依次是名(míng)稱、标題、數據類型

img

(2)點擊“導入Excel”按鈕,選擇上述模闆文(wén)件,最後上傳即可(kě)

image-20240301115827058

常量值的在使用(yòng)中(zhōng)實際值

results matching ""

    No results matching ""