欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Drools7规则引擎Map使用

程序员文章站 2022-05-28 11:17:29
...

service代码:

@Service
public class DroolsService {
    public String fireRule() {
        KieServices ks = KieServices.Factory.get();
        KieContainer kContainer = ks.getKieClasspathContainer();
        KieSession kSession = kContainer.newKieSession("ksession-rules");
        Map<String,String> map=new HashMap<>();
        map.put("message","Hello World");
        map.put("status","0");
        kSession.insert(map);//插入
        kSession.fireAllRules();//执行规则
        kSession.dispose();
   	 }
}

规则文件:

1.用[]方式取值

	import java.util.Map;
	dialect  "java
	rule "Hello World"
    when
        $map:Map()
        $o : Object($map["status"]=="0");
    then
        System.out.println( $map.get("message"));
	end

2.用get()方式取值

	import java.util.Map;
	dialect  "java"

	rule "Hello World"
	    when
	        $map:Map()
	        $o : Object($map.get("status")=="0");
	    then
	        System.out.println( $map.get("message"));
	
	end