java规则引擎

作者:原创时间:2022-03-29
文档

很多朋友都想知道java规则引擎是什么?下面就一起来了解一下吧~

一、简介:

Drools就是为了解决业务代码和业务规则分离的引擎。 Drools 规则是在 Java 应用程序上运行的,其要执行的步骤顺序由代码确定,为了实现这一点,Drools 规则引擎将业务规则转换成执行树。

二、特性:

优点:    

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

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

3、方便系统的整合    

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

三、使用方式:

(1)Maven 依赖:


    
        org.kie
        kie-api
        6.5.0.Final
    
    
        org.drools
        drools-compiler
        6.5.0.Final
        runtime
    
    
        junit
        junit
        4.12
    

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


    
        
    

(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 dataset java读取json java读取本地excel java decaf java调python java decode java decodeuri java delegate java调用c++接口 java调用c++ java获取绝对值 java delete java调用asmx接口 java dependency java dev java fastdfs java development java dict java fastjson java feign java dataframe java表单校验 java获得当前路径 java dashboard java获取随机数 java daemon java获取随机字符串 java ctp java获取运行时间 java cssbox java获取路径 java获取请求域名 java csrf java获取视频时长 java crontab java获取网络时间 java crash java获取秒级时间戳 java core java获取泛型class