当前位置:懂科普 >

IT科技

> java规则引擎

java规则引擎

<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 应用程序上运行的,其要执行的步骤顺序由代码确定,为了实现这一点,Drools 规则引擎将业务规则转换成执行树。

二、特性:

优点:   

1、简化系统架构,优化应用   

2、提高系统的可维护性和维护成本   

3、方便系统的整合   

4、减少编写“硬代码”业务规则的成本和风险

java规则引擎

三、使用方式:

(1)Maven 依赖:

<dependencies>    <dependency>        <groupId>org.kie</groupId>        <artifactId>kie-api</artifactId>        <version>6.5.0.Final</version>    </dependency>    <dependency>        <groupId>org.drools</groupId>        <artifactId>drools-compiler</artifactId>        <version>6.5.0.Final</version>        <scope>runtime</scope>    </dependency>    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>4.12</version>    </dependency></dependencies>

(2)新建配置文件/src/resources/META-INF/kmodule.xml

<?xml version="1.0" encoding="UTF-8"?><kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">    <kbase name="rules" packages="rules">        <ksession name="myAgeSession"/>    </kbase></kmodule>

(3)新建drools规则文件/src/resources/rules/age.drl

import com.lrq.wechatDemo.domain.User               // 导入类dialect  "mvel"rule "age"                                      // 规则名,唯一    when        $user : User(age<15 || age>60)     //规则的条件部分    then        System.out.println("年龄不符合要求!");end

测试用例:

/** * CreateBy: haleyliu * CreateDate: 2018/12/26 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"classpath*:applicationContext.xml"})public class TestUser {    private static KieContainer container = null;    private KieSession statefulKieSession = null;    @Test    public void test(){        KieServices kieServices = KieServices.Factory.get();        container = kieServices.getKieClasspathContainer();        statefulKieSession = container.newKieSession("myAgeSession");        User user = new User("duval yang",12);        statefulKieSession.insert(user);        statefulKieSession.fireAllRules();        statefulKieSession.dispose();    }}

标签: java 规则 引擎
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/itkeji/nmzjnr.html