ステータスなしkiesession使用
目次1、ルール作成 2、kmodule配置 3、業務ロジック 4、効果表示 1、ルール作成
resourcesディレクトリの下で、
2、kmodule配置
新しい
3、業務ロジック
ステータスレスセッション
4、効果の表示
resourcesディレクトリの下で、
com/stateless/
の2階層ディレクトリを作成し、testStateless.drl
ルールファイルを新規作成し、月収と受信可能額ルールの関係を構成します.package com.stateless;
import com.example.droolsdemo.model.Borrower
import java.math.BigDecimal
// [0.5-1) , 2
rule "testBorrower02"
when
$b:Borrower($b.getIncome() >= 5000.00 && $b.getIncome() <10000.00)
then
$b.setCreditLine(new BigDecimal(20000.00));
end
2、kmodule配置
新しい
kbase
type
がstateless
無状態属性に設定されました <kbase name="stateless" packages="com.stateless">
<ksession name="stateless-rules" type="stateless" />
</kbase>
3、業務ロジック
ステータスレスセッション
StatelessKieSession
を使用して、execute()
実行方法を呼び出せばよい.ステータスレスセッションはdispose()を呼び出してセッションを閉じる必要はありません.ルール・エンジンとのインタラクションを分離し、セッションのステータスを維持することはありません.一般的には、データの検証とフィルタリング、計算、メッセージ・ルーティングなどのシーンで使用されます./**
* @Author pandafox
* @Desctription session
* @Date 2020/7/5 18:09
* @Param []
* @return
*/
@Test
public void testBorrower01Stateless() {
// kie
KieServices kieServices = KieServices.get();
KieContainer kieContainer = kieServices.getKieClasspathContainer();
// stateless-rules 【 】kie ( kmodule.xml )
StatelessKieSession statelessKieSession = kieContainer.newStatelessKieSession("stateless-rules");
// , 8
Borrower borrower = new Borrower();
borrower.setName(" ");
borrower.setIncome(new BigDecimal(8000.00));
//【 】kie execute() ,
statelessKieSession.execute(borrower);
//
System.out.println(borrower.getName() + " [" + borrower.getCreditLine() + "] ");
}
4、効果の表示
[20000]