drools配置文件


1.一个kmodule.xml中可以配置包含多个kiebase,每个kiebase都有一个name属性,可以任意字符串,不能重名。
2.kiebase有一个packages属性,它的值是一段字符串形式的路径信息,内容是resources目录下文件夹的名词,或者称为包名,规则引擎会根据packages定义的内容查找规则文件,可以同时定义多个包,逗号进行分割,每个kiebase可以包含多个kiession。
3.每个kiession都有一个名称,名称可以是任意字符串,但是不能重复,java代码执行kiession设置的name就是在执行规则代码的name,是用来指定操作具体的规则的。
4.packages指定当前路径下的所有规则文件都会被读取,例如:
rules/hello目录下的10个规则文件,运行时这10个规则文件都会被加载,当然满足条件的规则文件才会被执行,如果有子目录则子目录的文件不会被加载。
5.避免4中的问题,解决方案有3种:
/1.设计多个规则目录,每一种只放一个规则文件,虽然这种比较繁琐但可以实现。
/2.指定规则名,规则名称指规则文件的rule参数
/3.指定规则文件名的方式,这种方式通过api的方式实现的。
6. 4的问题中,需要注意同一目录下规则文件中的规则名称不能重复,当目录中包含多个规则文件时,通过insert插入对象的操作,则规则文件中所有规则都将有这样的值,规则之间相互独立又相互依赖。

相关