📜  Drools-运行时(1)

📅  最后修改于: 2023-12-03 15:00:32.292000             🧑  作者: Mango

Drools运行时

Drools是一个基于规则的业务逻辑框架,它允许我们使用DSL,Excel,XML等方式定义和组织业务规则。Drools运行时是Drools引擎的核心,它负责解析和执行规则,使它们成为一个强大的业务逻辑引擎。

Drools运行时的特性
  • 支持基于事件的规则引擎。Drools运行时可以识别事件,然后在事件发生时自动执行规则。
  • 支持RuleFlow流程,以及与BPM集成。Drools运行时可以组织规则,以便在执行复杂的业务操作时进行管理。
  • 支持响应式规则设计。Drools配置处理器允许程序员在规则的每个方面都建立条件,然后响应条件的状态变化。
  • 支持规则版本控制。Drools允许程序员管理和跟踪自定义规则的版本和升级过程。
Drools运行时的使用

Drools运行时可以与Java应用程序一起使用,以便在应用程序中执行规则。应用程序可以使用Drools API将规则上传到Drools运行时的知识库中,然后运行规则,查看事实和规则的结果。

下载Drools

在使用Drools之前,我们需要下载Drools引擎。可以从Drools官网下载并解压缩Drools引擎。

添加Drools依赖项

Drools在Maven中有许多依赖项,需要添加以下依赖项:

<dependencies>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
        <version>7.51.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-decisiontables</artifactId>
        <version>7.51.0.Final</version>
    </dependency>
</dependencies>
建立Drools运行时

在使用Drools之前,需要建立运行时,如下所示:

KieServices kieServices = KieServices.Factory.get();
KieFileSystem kfs = kieServices.newKieFileSystem();
KieRepository kieRepository = kieServices.getRepository();

kfs.write(ResourceFactory.newClassPathResource("rules.drl"));

KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll();
if (kieBuilder.getResults().hasMessages(Message.Level.ERROR)) {
    throw new RuntimeException("Build Errors:\n" + kieBuilder.getResults().toString());
}

KieContainer kieContainer = kieServices.newKieContainer(kieRepository.getDefaultReleaseId());

KieBase kieBase = kieContainer.getKieBase();
结论

通过Drools运行时,我们可以方便地管理业务规则,执行规则和获取规则的结果。它是一个适用于许多业务场景的强大的业务逻辑引擎。