很多朋友都想知道java規(guī)則引擎是什么?下面就一起來(lái)了解一下吧~
一、簡(jiǎn)介:
Drools就是為了解決業(yè)務(wù)代碼和業(yè)務(wù)規(guī)則分離的引擎。 Drools 規(guī)則是在 Java 應(yīng)用程序上運(yùn)行的,其要執(zhí)行的步驟順序由代碼確定,為了實(shí)現(xiàn)這一點(diǎn),Drools 規(guī)則引擎將業(yè)務(wù)規(guī)則轉(zhuǎn)換成執(zhí)行樹(shù)。
二、特性:
優(yōu)點(diǎn):
1、簡(jiǎn)化系統(tǒng)架構(gòu),優(yōu)化應(yīng)用
2、提高系統(tǒng)的可維護(hù)性和維護(hù)成本
3、方便系統(tǒng)的整合
4、減少編寫(xiě)“硬代碼”業(yè)務(wù)規(guī)則的成本和風(fēng)險(xiǎn)
三、使用方式:
(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規(guī)則文件/src/resources/rules/age.drl
import?com.lrq.wechatDemo.domain.User???????????????//?導(dǎo)入類dialect??"mvel"rule?"age"??????????????????????????????????????//?規(guī)則名,唯一 ????when ????????$user?:?User(age<15?||?age>60)?????//規(guī)則的條件部分 ????then ????????System.out.println("年齡不符合要求!");end
測(cè)試用例:
/** ?*?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(); ????}}
以上就是小編今天的分享,希望能幫到大家。