Drools规则引擎使用入门
生活随笔
收集整理的這篇文章主要介紹了
Drools规则引擎使用入门
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
參考書籍:《Drools規(guī)則引擎技術指南》來志輝 | 微信讀書
最簡單的示例
規(guī)則引擎的配置方式最基本的方式有2種,一個是靜態(tài)配置文件,另一個是動態(tài)加載
靜態(tài)配置文件
動態(tài)加載配置
(一) 靜態(tài)配置文件方式
以下幾個是文件內容詳解
pom文件引用maven包
<dependency><groupId>org.drools</groupId><artifactId>drools-compiler</artifactId><version>7.10.0.Final</version> </dependency>kmodule.xml 文件內容
<?xml version="1.0" encoding="UTF-8" ?> <kmodule xmlns="http://www.drools.org/xsd/kmodule"><kbase name="rule_test1" packages="rules.collect"><ksession name="rule_test1_session"/></kbase></kmodule>drools-rule1.drl文件內容
package rules.collect //當前drl文件所在resources中的路徑 import com.pojo.Person //引用包是 Person 類的路徑名rule "test001"wheneval(true);thenSystem.out.println("Hello World");endrule "test002"when$p:Person(age>21,$n:name=="liuyb")then$p.setName("Banana");update($p);System.out.println("檢查姓名:"+$n);System.out.println("輸出引用對象 "+$p);end實體類Person內容
@Data public class Person {private int age;private String name; }測試代碼
public static void main(String[] args) {KieServices factory = KieServices.Factory.get();KieContainer container = factory.getKieClasspathContainer();KieSession session = container.newKieSession("rule_test1_session");Person person = new Person();person.setName("liuyb");person.setAge(22);session.insert(person);int count = session.fireAllRules();System.out.println("總共執(zhí)行了條" + count + "規(guī)則");session.dispose(); }這樣靜態(tài)配置的方式就完成了, 執(zhí)行MainTest測試代碼
(二) 動態(tài)配置加載
這里是用字符串形式進行簡單使用示例
將規(guī)則文件中的字符串全部拷貝出來,準備好
實戰(zhàn)應用中規(guī)則內容比較少,可以通過數(shù)據(jù)庫字段進行存取,量特別大時候要使用寫配置文件的方式
測試代碼
public static void main(String[] args) {// 規(guī)則文本字符串String drlStr = "package rules.collect\n" +"import com.pojo.Person\n" +"\n" +"rule \"test001\"\n" +" when\n" +" eval(true);\n" +" then\n" +" System.out.println(\"Hello World\");\n" +"\n" +"end\n" +"\n" +"rule \"test002\"\n" +" when\n" +" $p:Person(age>21,$n:name==\"liuyb\")\n" +" then\n" +" $p.setName(\"Banana\");\n" +" update($p);\n" +" System.out.println(\"檢查姓名:\"+$n);\n" +" System.out.println(\"輸出引用對象 \"+$p);\n" +"\n" +"end";Person person = new Person();person.setName("liuyb");person.setAge(22);KieHelper helper = new KieHelper();helper.addContent(drlStr, ResourceType.DRL);KieSession kieSession = helper.build().newKieSession();kieSession.insert(person);kieSession.fireAllRules();kieSession.dispose();}直接運行即可
總結
以上是生活随笔為你收集整理的Drools规则引擎使用入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拗口翻译
- 下一篇: 9.struts1.x中tiles框架的