规则引擎 Drools 6.4.0Final版本2
Posted SDingBa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了规则引擎 Drools 6.4.0Final版本2相关的知识,希望对你有一定的参考价值。
上一篇文章讲了 规则引擎的简单版本,可以说 是 drl配置文件版本,现在将一下数据库版本,这样数据就可以共享,灵活性更加大一些吧,.
规则引擎版本1
其实原理和上一篇一样,都是一样的模式,今天简单介绍一下,
private KieContainer loadKieContainerDao() throws IOException
KieServices kieService = KieServices.Factory.get();
final KieRepository kieRepository = kieService.getRepository();
kieRepository.addKieModule(kieRepository::getDefaultReleaseId);
KieFileSystem kfs = kieService.newKieFileSystem();
String[] files = listRulesDao();
for (String file : files)
String myString = IOUtils.toString(new ByteArrayInputStream(file.getBytes()), "UTF-8");
String path = "src/main/resources/xxx.drl";
kfs.write(path, myString );
KieBuilder kieBuilder = kieService.newKieBuilder(kfs);
kieBuilder.buildAll(); // kieModule is automatically deployed to KieRepository if successfully built.
return kieService.newKieContainer(kieRepository.getDefaultReleaseId());
本demo用string代替,读者课自行处理,得到自己想要的类容;
private String[] listRulesDao()
String s = "package drools;\\n" +
"import com.sdingba.Drools.demo1.person;\\n" +
"\\n" +
"rule showdemo\\n" +
"when\\n" +
" $person : person(age>3)\\n" +
"// System.out.println(\\"xxxxx\\");\\n" +
"then\\n" +
" $person.toString(\\"sdfsdf\\");\\n" +
" $person.setName(\\"xxxxxx\\");\\n" +
"end";
return new String[]s;
@Bean
@ConditionalOnMissingBean(KieSession.class)
public KieSession kieSession() throws IOException
return loadKieContainerDao().newKieSession();
其他原理同上一篇博客一样,以及测试代码,这儿不多说…
以上是关于规则引擎 Drools 6.4.0Final版本2的主要内容,如果未能解决你的问题,请参考以下文章
jboss规则引擎KIE Drools 6.3.0 Final 教程