Drools(JBoss Rules )具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎。Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。项目中公司计算工资的系统使用的就是规则引擎,计算不同岗位的工资。
规则脚本有自己的语法规则,这篇博客主要介绍学习过程中的心得体会和一些需要记录的地方,加深印象,学习的是Drools5的语法,Drools最新版本已经到6.5了。eclipse有规则引擎的相关插件,用来编写规则文件,引入规则引擎开发工具包。有了开发工具包才可以正常使用规则引擎。
第一个测试
public class Test{
public static void main(String[] args){
KnowledgeBuilder kbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("test.drl", Test.class),ResourceType.DRL);
Collection<KnowledgePackage> kpackage=kbuilder.getKnowledgePackages();
KnowledgeBase kbase=KnowledgeBaseFactory.newKnowledgeBase();
KnowledgeBaseConfiguration kbConf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
kbConf.setProperty( "org.drools.sequential", "true");
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbConf);
kbase.addKnowledgePackages(kpackage);
StatefulKnowledgeSession statefulKSession=kbase.newStatefulKnowledgeSession();
statefulKSession.setGlobal("globalTest", new Customer());
Customer cus =