开心生活站

位置:首页 > IT科技 > 

java,drools

IT科技3.05W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java drools是什么,让我们一起了解一下:

Drools是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现,具有了OO接口的RETE,使得商业规则有了更自然的表达。而且用XML节点来规范If--Then句式和事实的定义,使引擎干起活来更方便。

drools的基本工作过程是什么?

通常而言我们使用一个接口来做事情,首先要穿进去参数,其次要获取到接口的实现执行完毕后的结果,而drools也是一样的,我们需要传递进去数据,用于规则的检查,调用外部接口,同时还可能需要获取到规则执行完毕后得到的结果。

java drools

在drools中,这个传递数据进去的对象,术语叫 Fact对象。Fact对象是一个普通的java bean,规则中可以对当前的对象进行任何的读写操作,调用该对象提供的方法,当一个java bean插入到workingMemory中,规则使用的是原有对象的引用,规则通过对fact对象的读写,实现对应用数据的读写,对于其中的属性,需要提供getter setter访问器,规则中,可以动态的往当前workingMemory中插入删除新的fact对象。

规则文件可以使用 .drl文件,也可以是xml文件,这里我们使用drl文件。

具体案例分析如下:

<!-- drools -->        <dependency>            <groupId>org.kie</groupId>            <artifactId>kie-api</artifactId>            <version>7.11.0.Final</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-nop</artifactId>            <version>1.7.6</version>        </dependency>        <dependency>            <groupId>org.kie</groupId>            <artifactId>kie-ci</artifactId>            <version>7.11.0.Final</version>        </dependency>        <!-- workbench打包好的jar -->        <dependency>            <groupId>com.myspace</groupId>            <artifactId>ljlTest</artifactId>            <version>1.0.0</version>        </dependency>        <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.10</version> </dependency>

标签:java drools