很多朋友都想知道java規則引擎是什么?下面就一起來了解一下吧~
一、簡介:
Drools就是為了解決業務代碼和業務規則分離的引擎。 Drools 規則是在 Java 應用程序上運行的,其要執行的步驟順序由代碼確定,為了實現這一點,Drools 規則引擎將業務規則轉換成執行樹。
二、特性:
優點:
1、簡化系統架構,優化應用
2、提高系統的可維護性和維護成本
3、方便系統的整合
4、減少編寫“硬代碼”業務規則的成本和風險
三、使用方式:
(1)Maven 依賴:
???? ???????? ????org.kie ????????kie-api ????????6.5.0.Final ???????????? ????org.drools ????????drools-compiler ????????6.5.0.Final ????????runtime ???????????? junit ????????junit ????????4.12 ????
(2)新建配置文件/src/resources/META-INF/kmodule.xml
???? ???????? ????
(3)新建drools規則文件/src/resources/rules/age.drl
import?com.lrq.wechatDemo.domain.User???????????????//?導入類dialect??"mvel"rule?"age"??????????????????????????????????????//?規則名,唯一 ????when ????????$user?:?User(age<15?||?age>60)?????//規則的條件部分 ????then ????????System.out.println("年齡不符合要求!");end
測試用例:
/** ?*?CreateBy:?haleyliu ?*?CreateDate:?2018/12/26 ?*/@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations?=?{"classpath*:applicationContext.xml"})public?class?TestUser?{ ????private?static?KieContainer?container?=?null; ????private?KieSession?statefulKieSession?=?null; ????@Test ????public?void?test(){ ????????KieServices?kieServices?=?KieServices.Factory.get(); ????????container?=?kieServices.getKieClasspathContainer(); ????????statefulKieSession?=?container.newKieSession("myAgeSession"); ????????User?user?=?new?User("duval?yang",12); ????????statefulKieSession.insert(user); ????????statefulKieSession.fireAllRules(); ????????statefulKieSession.dispose(); ????}}
以上就是小編今天的分享,希望能幫到大家。