五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Drools-第一天

2021-03-18 16:03 作者:一個胖胖的程序猿  | 我要投稿

第一天記錄:搭建基礎(chǔ)項目,完成基本語法的學(xué)習(xí)。

maven方式引入jar包;

? ?<dependency>
? ? ? ?<groupId>org.drools</groupId>
? ? ? ?<artifactId>drools-core</artifactId>
? ? ? ?<version>6.4.0.Final</version>
? ?</dependency>
? ?<dependency>
? ? ? ?<groupId>org.drools</groupId>
? ? ? ?<artifactId>drools-compiler</artifactId>
? ? ? ?<version>6.4.0.Final</version>
? ?</dependency>

創(chuàng)建resource/META-INF/kmodule.xml標(biāo)準配置文件

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">

<!--?? name:指定kbase的名稱,可以任意;

????????packages:指定規(guī)則文件的目錄;

????????default:指定當(dāng)前kbase是否為默認;-->

? ?<kbase name="rules" packages="rules">

<!--???name:指定ksession的名稱,可以任意;

????????default:指定當(dāng)前session是否為默認;? -->

? ? ? ?<ksession name="ksession-rules"/>
? ?</kbase>
</kmodule>

創(chuàng)建作為載體的實體類(class)為載體類添加get,set方法;

在packages指定的規(guī)則文件目錄下創(chuàng)建drl文件;

創(chuàng)建測試類進行創(chuàng)建;

Drools基礎(chǔ)語法:

drl文件構(gòu)成:

package:包名,邏輯上的空間;

import:用于導(dǎo)入;

global:全局變量;

function:自定義函數(shù);

query:查詢;

rule -- end:規(guī)則體;

規(guī)則體語法結(jié)構(gòu):

rule "ruleName"

????attributes

? ? when

????????LHS

? ? then

????????RHS

end

rule:表示規(guī)則開始,規(guī)則的名稱唯一;

attributes:規(guī)則屬性,類似于變量;

when:if關(guān)鍵字,后面是規(guī)則的條件;

LHS(Left Hand Side):規(guī)則條件部分;

then:do關(guān)鍵字,后面是結(jié)果部分;

RHS(Right Hand Side):結(jié)果行動部分的通用名稱;

end:表示規(guī)則結(jié)束;

Pattern模式匹配:

語法結(jié)構(gòu)為:綁定變量名:Object--引入的類--(約束條件)

例:$user:User(name?=?'wang')

在LHS中定義的變量名在RHS中就可以直接使用;

當(dāng)內(nèi)存中存在User類型的變量(類型約束)并且名字為wang(屬性約束)時規(guī)則才激活;

綁定變量名也可以作用在屬性上;

例:$user:User($username:name?=?'wang')

多個pattern中可以使用and和or鏈接(默認and不寫就是and)

$user:User($username:name?=?'wang')? and

$user:User(name?=?'wang')

比較操作符:

  • >,<,>=,<=,==,!=? 和java代碼中意義相同

  • contains,not contains 包含和不包含;

    Object(Field[Collection/Array] cotains value);

    Object(Field[Collection/Array] not cotains value);

  • memberOf,not?memberOf?是否在一個或多個集合中;

    Object(Field?memberOfvalue[Collection/Array]);

    Object(Field?not?memberOfvalue[Collection/Array]);

  • matches,not matches 是否與提供的標(biāo)準java正則表達式匹配;

    Object(Field?matches?"正則表達式");

    Object(Field not?matches?"正則表達式");

執(zhí)行指定規(guī)則:

當(dāng)我們只想從所有滿足條件的規(guī)則中,執(zhí)行某些指定的規(guī)則時需要修改java代碼;

接口AgendaFilter作為指定激活規(guī)則的過濾器,實現(xiàn)子類可以寫入到激活方法中。

包括:

  • RuleNameStartsWithAgendaFilter? 頭部相同的規(guī)則;

  • RuleNameEndsWithAgendaFilter? 結(jié)尾相同的規(guī)則;

  • RuleNameEeualsWithAgendaFilter? 全相同的規(guī)則;

  • RulenameMatchesAgendaFilter? 滿足正則表達式的規(guī)則;

  • RuleNameSerializationAgendaFilter? 滿足可序列化的規(guī)則;

Drools內(nèi)置方法:

  • update:更新工作內(nèi)存中的數(shù)據(jù),實現(xiàn)相關(guān)規(guī)則的重新匹配;

    drl中:then? update(user);

  • insert:插入工作內(nèi)存中的數(shù)據(jù),實現(xiàn)相關(guān)規(guī)則的重新匹配;

    drl中:then? insert(new User('wang'));

  • retract:刪除工作內(nèi)存中的數(shù)據(jù),實現(xiàn)相關(guān)規(guī)則的重新匹配;

    drl中:then? retract(user);


Drools-第一天的評論 (共 條)

分享到微博請遵守國家法律
邳州市| 台东县| 遵化市| 湟源县| 阿巴嘎旗| 孙吴县| 桐庐县| 新宾| 渭源县| 林口县| 沂源县| 浮梁县| 阿图什市| 浦城县| 藁城市| 历史| 中西区| 抚顺市| 固原市| 山阴县| 三原县| 胶南市| 昭平县| 合作市| 陇西县| 翁牛特旗| 弥勒县| 宁安市| 溧阳市| 灵寿县| 肇源县| 仁化县| 彝良县| 千阳县| 松江区| 平乡县| 马鞍山市| 和田县| 衡水市| 衢州市| 滦南县|