// 引入 Drools 规则引擎依赖
// 在 pom.xml 中添加以下依赖
/*
<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-core</artifactId>
    <version>7.60.0.Final</version>
</dependency>
*/
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
// 定义一个简单的事实类
public class Person {
    private String name;
    private int age;
    // 构造函数、getter 和 setter 方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
// 主类,用于启动规则引擎
public class RuleEngineExample {
    public static void main(String[] args) {
        // 初始化 KieServices
        KieServices ks = KieServices.Factory.get();
        KieContainer kContainer = ks.getKieClasspathContainer();
        KieSession kSession = kContainer.newKieSession("ksession-rules");
        // 创建一个事实对象
        Person person = new Person("John", 30);
        // 将事实对象插入到工作内存中
        kSession.insert(person);
        // 触发所有匹配的规则
        kSession.fireAllRules();
        // 关闭会话
        kSession.dispose();
    }
}
// 规则文件 (rules.drl)
/*
package com.example.rules
rule "Check Age"
when
    $person: Person( age > 18 )
then
    System.out.println($person.getName() + " is an adult.");
end
*/pom.xml 中添加了 Drools 规则引擎的核心依赖。Person 类,包含姓名和年龄属性。KieServices 获取规则引擎容器,并创建一个 KieSession 实例。Person 对象插入到工作内存中。fireAllRules() 方法来触发所有匹配的规则。rules.drl,当 Person 的年龄大于 18 岁时,打印一条消息。上一篇:java list转set
下一篇:java int数值范围
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站