Drools入門(一)——環(huán)境搭建

目的

本篇講的是Drools規(guī)則引擎的基本使用揍愁,什么是規(guī)則引擎、以及搞清楚規(guī)則引擎在什么情況下比較適合使用。Drools支持以drl文件結(jié)尾的文件作為規(guī)則文件最域,也支持其他結(jié)尾的文件作為規(guī)則文件比如gdrlrdrl锈麸、dsl等(詳情可見ResourceType.class)镀脂,Drools還支持工作流等其他功能,本篇主要講解的是drl規(guī)則文件的使用忘伞,不涉及工作流等其他功能薄翅,將分為幾個章節(jié)進(jìn)行講解

準(zhǔn)備環(huán)境

JDK (版本隨意,作者使用1.8)
Maven (版本隨意氓奈,作者使用3.6.3)
IDEA (版本隨意翘魄,作者使用2020.1)

準(zhǔn)備工作

新建一個maven項(xiàng)目,打開pom.xml導(dǎo)入Drools依賴舀奶,下面為剔除spring依賴的導(dǎo)入暑竟,沒有spring依賴的項(xiàng)目可以不導(dǎo)入kie-spring

<!--drools-->
<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-spring</artifactId>
    <version>7.37.0.Final</version>
    <!--排除沖突版本依賴-->
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </exclusion>
        <exclusion>
            <artifactId>commons-lang3</artifactId>
            <groupId>org.apache.commons</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-compiler</artifactId>
    <version>7.37.0.Final</version>
</dependency>

在maven項(xiàng)目的resources下面新建一個rules目錄并在rules目錄下新建demo.drl規(guī)則文件,目錄的路徑于規(guī)則里面的包名保持一致伪节,否則會報警告雖然不影響使用

package rules

rule "test"
    when
        eval(true)
    then
        System.out.println("規(guī)則中打印日志:校驗(yàn)通過!");
end

main方法中添加一下代碼并運(yùn)行

public static void main(String[] args) {
    KieServices kieServices = KieServices.Factory.get();
    KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
    try {
        Enumeration<URL> resources = Demo.class.getClassLoader().getResources("rules/demo.drl");
        while (resources.hasMoreElements()){
            URL url = resources.nextElement();
            kieFileSystem.write(ResourceFactory.newFileResource(URLDecoder.decode(url.getPath())));
        }
        KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);
        kieBuilder.buildAll();
        KieContainer kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());
        KieSession defaultKieSession = kieContainer.newKieSession(); //等價于KieSession defaultKieSession = kieContainer.newKieSession("defaultKieSession");
        defaultKieSession.fireAllRules();
        defaultKieSession.dispose();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

運(yùn)行結(jié)果如下光羞,打印出了規(guī)則中的結(jié)果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
規(guī)則中打印日志:校驗(yàn)通過!

Process finished with exit code 0
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者怀大。
  • 序言:七十年代末纱兑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子化借,更是在濱河造成了極大的恐慌潜慎,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異铐炫,居然都是意外死亡垒手,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門倒信,熙熙樓的掌柜王于貴愁眉苦臉地迎上來科贬,“玉大人,你說我怎么就攤上這事鳖悠“裾疲” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵乘综,是天一觀的道長憎账。 經(jīng)常有香客問我,道長卡辰,這世上最難降的妖魔是什么胞皱? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮九妈,結(jié)果婚禮上反砌,老公的妹妹穿的比我還像新娘。我一直安慰自己允蚣,他們只是感情好于颖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嚷兔,像睡著了一般森渐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冒晰,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天同衣,我揣著相機(jī)與錄音,去河邊找鬼壶运。 笑死耐齐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蒋情。 我是一名探鬼主播埠况,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棵癣!你這毒婦竟也來了辕翰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤狈谊,失蹤者是張志新(化名)和其女友劉穎喜命,沒想到半個月后沟沙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壁榕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年矛紫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牌里。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡颊咬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牡辽,到底是詐尸還是另有隱情贪染,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布催享,位于F島的核電站,受9級特大地震影響哟绊,放射性物質(zhì)發(fā)生泄漏因妙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一票髓、第九天 我趴在偏房一處隱蔽的房頂上張望攀涵。 院中可真熱鬧,春花似錦洽沟、人聲如沸以故。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怒详。三九已至,卻和暖如春踪区,著一層夾襖步出監(jiān)牢的瞬間昆烁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工缎岗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留静尼,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓传泊,卻偏偏與公主長得像鼠渺,于是被迫代替她去往敵國和親功偿。 傳聞我的和親對象是個殘疾皇子牧挣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348