drools使用記錄

2021-09-26 01:12:02 字數 1269 閱讀 2548

kie是jboss裡面一些相關專案的統稱,其中我們比較熟悉的就有jbpm和drools

這些專案都有一定的關聯關係,並且存在一些通用的api,比如說涉及到構建(building)、部署(deploying)和載入(loading)等;

jboss通過kie將jbpm和drools等相關專案進行了乙個整合,統一了他們的使用方式,提供了常見的公共api如kieservices、kiecontainer、kiesession等。

通過kieservices物件得到乙個kiecontainer,利用kiecontainer物件建立乙個新的kiesession,建立session的時候傳入了乙個name,這個就是我們定義的kmodule.xml檔案中定義的ksession的name。

kiecontainer根據kmodule.xml定義的ksession的名稱找到kiesession的定義,然後建立乙個kiesession的例項。

kiesession就是乙個到規則引擎的鏈結,通過它就可以跟規則引擎通訊,並且發起執行規則的操作。

通過ksession.insert方法來將事實(fact)插入到引擎中,也就是working memory中。 然後通過ksession.fireallrules方法來通知規則引擎執行規則。

kiecontainer可以理解為乙個kiebase的容器。

kiebase就是乙個知識倉庫,包含了若干的規則、流程、方法等,在drools中主要就是規則和方法,kiebase本身並不包含執行時的資料之類的,如果需要執行規則kiebase中的規則的話,就需要根據kiebase建立kiesession。

public static void main(final string args)
kmodule.xml

<?xml version="1.0" encoding="utf-8"?>

7.0.0.final

org.kie

kie-api

$ org.drools

drools-core

$ org.drools

drools-compiler

$ org.drools

drools-decisiontables

$ org.drools

drools-templates

$

Drools如何使用

使用乙個新技術時。首先了解其作用,具體的這裡不再過多的闡述。參考 package com.hello import com.hello.hi rule hello when eval true then system.out.println hello end從上面截圖我們可以看出drl檔案的規範 ...

規則引擎 Drools的使用

專案遇到下步執行動作決策的業務,場景不同於常見的規則性業務,但也可以應用於規則引擎之中,剝離掉 中大量的邏輯判斷 同時加快決策結果的輸出。可見規則的定義是比較泛的,技術元件的應用也不是一成不變的。drools有專門的規則語法drl檔案,drools會記載drl檔案中編寫好的規則,供專案呼叫 因為一般...

為何在Drools中使用MVEL

為何在drools中使用mvel 當然大家問的第乙個問題會是為什麼選擇mvel而不是groovy,jython等等,我將原因列舉如下 快速反射模式 外掛程式式轉換器 規模自定義的語言擴充套件 靜態型別 推斷型別或者動態模式 支援可配置的語言特性 mvel遵從bsf 指令碼語言框架 不久也將會支援el...