springboot-drools7(2)

KieServices

该接口提供了很多方法,可以通过这些方法构建和运行KIE相关对象,比如说可以获取KieContainer,利用KieContainer来访问KBase和KSession等信息;可以获取KieRepository对象,利用KieRepository来管理KieModule等。 
KieServices就是一个中心,通过它来获取的各种对象来完成规则构建、管理和执行等操作。 

public interface KieServices {
    KieResources getResources();
    KieRepository getRepository();
    KieCommands getCommands();
    KieMarshallers getMarshallers();
    KieLoggers getLoggers();
    KieStoreServices getStoreServices();
    KieContainer getKieClasspathContainer(String var1);
    KieBuilder newKieBuilder(File var1);

KieContainer

可以理解KieContainer就是一个KieBase的容器。提供了获取KieBase的方法和创建KieSession的方法。其中获取KieSession的方法内部依旧通过KieBase来创建KieSession。
ieServices kieServices = KieServices.Factory.get();
// 获取KieContainer
KieContainer kieContainer = kieServices.getKieClasspathContainer();

// 获取KieBase
KieBase kieBase = kieContainer.getKieBase();
// 创建KieSession
KieSession kieSession = kieContainer.newKieSession("session-name");

KieBase

KieBase就是一个知识仓库,包含了若干的规则、流程、方法等,在Drools中主要就是规则和方法,KieBase本身并不包含运行时的数据之类的,如果需要执行规则KieBase中的规则的话,就需要根据KieBase创建KieSession。

 KieSession

KieSession就是一个跟Drools引擎打交道的会话,其基于KieBase创建,它会包含运行时数据,包含“Fact”,并对运行时数据实时进行规则运算通过KieContainer创建KieSession是一种较为方便的做法,其本质上是从KieBase中创建出来的。KieSession就是应用程序跟规则引擎进行交互的会话通道。 
创建KieBase是一个成本非常高的事情,KieBase会建立知识(规则、流程)仓库,而创建KieSession则是一个成本非常低的事情,所以KieBase会建立缓存,而KieSession则不必。 

    @Test
    public void testRules() {
        // 构建KieServices
        KieServices ks = KieServices.Factory.get();
        KieContainer kieContainer = ks.getKieClasspathContainer();
        // 获取kmodule.xml中配置中名称为ksession-rule的session,默认为有状态的。
        KieSession kSession = kieContainer.newKieSession("ksession-rule");
        int count = kSession.fireAllRules();

KieRepository

KieRepository是一个单例对象,它是存放KieModule的仓库,KieModule由kmodule.xml文件定义(当然不仅仅只是用它来定义)。

kmodule.xml

kbase的属性:


<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://www.drools.org/xsd/kmodule">
    <kbase name="rules" packages="com.rules">
        <ksession name="ksession-rule"/>
    </kbase>
</kmodule>


要在Spring Boot项目中集成Drools,可以按照以下步骤进行操作: 1. 首先,创建一个Spring Boot项目。你可以参考这篇博客【Spring Boot】快速上手SpringBoot来创建项目。 2. 引入Drools的依赖。你可以在项目的pom.xml文件中添加如下依赖: ``` <dependency> <groupId>com.github.hongwen1993</groupId> <artifactId>fast-drools-spring-boot-starter</artifactId> <version>8.0.8</version> </dependency> ``` 3. 修改配置文件。在配置文件中,你需要修改`spring.drools.path`部分,指定Drools规则文件的路径。你可以使用类似以下的配置: ``` spring.drools.path=classpath:drools/**/*.drl ``` 4. 创建测试类。在测试类中,你需要注入`KieTemplate`,并使用`KieSession`加载规则文件并执行规则。你可以参考以下示例代码: ``` @Autowired private KieTemplate kieTemplate; @Before public void before() throws InterruptedException { Thread.sleep(1000); } @Test void test02() throws Exception { KieSession session = kieTemplate.getKieSession("rule01.drl"); UserInfo userInfo = new UserInfo(); userInfo.setName("李"); session.insert(userInfo); session.fireAllRules(); session.dispose(); } ``` 通过以上步骤,你就可以在Spring Boot项目中成功集成Drools了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot整合Drools](https://blog.csdn.net/qq_43466788/article/details/120916500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值