drools项目中通常都需要引入kmodule.xml配置文件,本文就介绍一下该文件的作用。

首先思考一下:为什么komdule.xml文件一定要放在resources下的META-INF文件夹中。

直接看源码:

public class KieModuleModelImpl implements KieModuleModel {

    public static final String KMODULE_FILE_NAME = "kmodule.xml";
    public static final String KMODULE_JAR_PATH = "META-INF/" + KMODULE_FILE_NAME;
    public static final String KMODULE_INFO_JAR_PATH = "META-INF/kmodule.info";
    public static final String KMODULE_SRC_PATH = "src/main/resources/" + KMODULE_JAR_PATH;
    public static final String KMODULE_SPRING_JAR_PATH = "META-INF/kmodule-spring.xml";
// ...
}

kmodule基本限制

kmodule中可以包含一个或多个kbase,分别对应drl的规则文件。

kase需要一个唯一的name,可以任意字符串。

packages为drl文件所在resource目录下的路径。注意区分drl文件中的package与此处的package不一定相同。多个包用逗号分隔。默认情况下回扫描resource目录下所有(包含子目录)规则文件。

kbase的default属性,标识当前kieBase是不是默认的,如果是默认的则不用名称就可以查找到该KieBase,但是module最多只能由一个默认KieBase(一般都是设置为false,不用默认的,用name就可以)。

kbase下面可以有一个或多个ksession,ksession的name属性必须设置,且必须唯一。

kbase配置项

Drools中kmodule.xml简介及功能介绍插图

KieSession配置项

Drools中kmodule.xml简介及功能介绍插图1


Drools中kmodule.xml简介及功能介绍插图2

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:https://choupangxia.com/2021/03/21/drools-kmodule-xml/