狠狠色噜噜狠狠狠狠2021,久久精品国产亚洲av麻豆白洁,777米奇影视盒,国内精品老年人视频网站

drools:業(yè)務規(guī)則管理系統(tǒng)(drools業(yè)務規(guī)則管理系統(tǒng))

Drools是一款基于Java的開源規(guī)則引擎,全稱為業(yè)務規(guī)則管理系統(tǒng),實現(xiàn)了將業(yè)務決策從應用程序中分離出來。

drools:業(yè)務規(guī)則管理系統(tǒng)(drools業(yè)務規(guī)則管理系統(tǒng))

什么場景下需要使用Drools

drools:業(yè)務規(guī)則管理系統(tǒng)(drools業(yè)務規(guī)則管理系統(tǒng))

信用卡申請

比如說辦信用卡,年齡、學歷、薪水、和是否有車和房,這些數(shù)據(jù)會作為用戶是否有申請資格的判定條件,假如有三個規(guī)則如下:

規(guī)則一:既沒房也沒車,學歷大專以下,月薪少于5000,申請拒絕

規(guī)則二:既沒房也沒車,學歷大專以下,但月薪大于10000,申請通過

規(guī)則三:既沒房也沒車,學歷本科以上,月薪大于3500,小于5000,申請通過

審核通過后,又有三個規(guī)則規(guī)定發(fā)放申請額度:

規(guī)則一:學歷大專以下,月薪大于10000,額度10000

規(guī)則二:學歷本科以上,月薪小于5000,額度10000

規(guī)則三:學歷本科以上,月薪大于10000,額度15000

傳統(tǒng)實現(xiàn)方式,在業(yè)務代碼中需要植入大量if else判斷:

Public boolean check(User user){If(!user.isHouse && !user.isCar &&user.xueli<dazhuan && user.xinzi < 5000)Return false;Else if(!user. isHouse && !user.isCar &&user.xueli<dazhuan && user.xinzi >=1000)Return true;Else if(!user. isHouse && !user. isCar &&user.xueli>benke &&,3500<user.xinzi <5000)Return true;}

 Public int check(User user){If(user.xueli<=dazhuan && user.xinzi >=10000)Return 10000;Else if(user.xueli>=benke && 3500<user.xinzi <5000)Return 10000;Else if(&user.xueli>=benke &&,user.xinzi >10000)Return 15000;}

如果人行出具新的金融政策,申請要求增加條件,那我們就必須修改或者新增if else的代碼。改這個代碼有三個弊端

1、硬編碼實現(xiàn)業(yè)務規(guī)則代碼難以維護

2、硬編碼使業(yè)務代碼和規(guī)則高耦合,難以應對變化

3、業(yè)務規(guī)則一旦發(fā)生變化,就要修改代碼,重啟應用

面對上面的業(yè)務場景,有個好的實現(xiàn)方式就是drools規(guī)則引擎。

drools:業(yè)務規(guī)則管理系統(tǒng)(drools業(yè)務規(guī)則管理系統(tǒng))

drools規(guī)則引擎的優(yōu)勢:

1、業(yè)務規(guī)則和系統(tǒng)代碼分離

2、不重啟服務的情況下,可隨時對業(yè)務規(guī)則進行擴展和維護

3、減少硬編碼業(yè)務規(guī)則的成本和風險

4、規(guī)則實現(xiàn)變得更加清晰

drools實戰(zhàn):

1、引入drools-compiler.jar

2、drools API開發(fā)步驟如下:

drools:業(yè)務規(guī)則管理系統(tǒng)(drools業(yè)務規(guī)則管理系統(tǒng))

3、規(guī)則引擎主要包括三個方面:規(guī)則模板、基準數(shù)據(jù)、業(yè)務數(shù)據(jù)

drools:業(yè)務規(guī)則管理系統(tǒng)(drools業(yè)務規(guī)則管理系統(tǒng))

1、規(guī)則模板

/***審核申請*/rule "pass_@{row.rowNumber}"   no-loop true    lock-on-active true    salience 99  when   user : User(xueli>("@{xueli}"), xinshui>("@{xinshui}"),isHouse.equals("@{isHouse}"), isCar.equals("@{isCar}"))  thenSystem.out.println("user=" user);   user.setPass(true);end 

2、基準數(shù)據(jù),通過ObjectDataCompiler.compile初始化到規(guī)則中;

3、業(yè)務數(shù)據(jù)fact,通過ksession.insert(fact)傳給規(guī)則做比較

drools:業(yè)務規(guī)則管理系統(tǒng)(drools業(yè)務規(guī)則管理系統(tǒng))

版權聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2022年10月8日 上午11:04
下一篇 2022年10月8日 上午11:18

相關推薦