规则引擎 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的主要内容,如果未能解决你的问题,请参考以下文章

规则引擎Drools 6.4.0.Final

规则引擎Drools 6.4.0.Final

jboss规则引擎KIE Drools 6.3.0 Final 教程

java规则引擎《Drools7.0.0.Final规则引擎教程》第4章 4.4 约束(Pattern的一部分)

规则引擎drools的简单使用

规则引擎Drools的使用