最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基于drools做規(guī)則校驗的實現

 更新時間:2024年03月07日 08:28:44   作者:編程經驗分享  
工作中需要開發(fā)一個規(guī)則服務,提供各種規(guī)則,本文主要介紹了Java基于drools做規(guī)則校驗的實現,具有一定的參考價值,感興趣的可以了解一下

需求

工作中需要開發(fā)一個規(guī)則服務,提供各種規(guī)則,每條規(guī)則由不同的校驗條件以及返回值構成。配置好的規(guī)則可以提供給其他服務使用,做各種業(yè)務校驗。

實現

基于drools規(guī)則引擎實現

根據不同的規(guī)則,可以動態(tài)地生成不同的drl

客戶端傳參,提供相應的條件值

得到drl和輸入參數后,便可以用 drools 來校驗規(guī)則是否通過,以及通過后相應的業(yè)務處理了

代碼

pom

        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-compiler</artifactId>
            <version>7.37.0.Final</version>
        </dependency>

使用示例

public class DynamicRule {

    public static void main(String[] args) {
        //業(yè)務代碼處理后得到的drl
        String drl =
                "import java.util.Map;\n" +
                "import java.util.HashMap;\n" +
                "import java.util.List;\n" +
                "import java.util.ArrayList;\n" +

                "global java.util.HashMap returnObj\n" +

                "rule \"test\"\n" +
                "when\n" +
                "    $m : Map()\n" +
                "    $o : Object($m[\"name\"].equals(\"abc\") && $m[\"age\"] >= 18)\n" +
                "then\n" +
                "    System.out.println($m);\n" +
                "    returnObj.put(\"result\", true);\n" +
                "end";

        KieSession kieSession = getKieSession(drl);
        Map<String, Object> returnObj = new HashMap<>();
        kieSession.setGlobal("returnObj", returnObj);

        //校驗的條件值
        Map<String, Object> data = new HashMap<>();
        data.put("name", "abc");
        data.put("age", 17);
        kieSession.insert(data);
        kieSession.fireAllRules();
        kieSession.dispose();

        if (Boolean.TRUE.equals(returnObj.get("result"))) {
            System.out.println("success");
        } else {
            System.out.println("fail");
        }
    }

    public static KieSession getKieSession(String drl) {
        KieHelper kieHelper = new KieHelper();
        kieHelper.addContent(drl, ResourceType.DRL);

        return kieHelper.build().newKieSession();
    }

}

到此這篇關于Java 基于 drools 做規(guī)則校驗的文章就介紹到這了,更多相關Java 基于 drools 做規(guī)則校驗內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • 在非Spring管理對象中注入Spring Bean的解決方案

    在非Spring管理對象中注入Spring Bean的解決方案

    在SpringBoot開發(fā)中,我們習慣了通過@Autowired/@Resource等注解輕松注入依賴 Bean,但在WebSocket、定時任務等場景下,會遇到一個核心問題:非Spring創(chuàng)建的對象無法直接注入 Spring Bean,所以本文給大家介紹了在非Spring管理對象中注入Spring Bean的解決方案
    2026-02-02
  • SpringBoot實現消息推送功能的示例代碼

    SpringBoot實現消息推送功能的示例代碼

    項目開發(fā)中,實時消息推送已成為提升用戶體驗的關鍵技術,無論是聊天應用、通知系統(tǒng)、實時數據展示,還是協(xié)同辦公場景,都需要服務器能夠主動向客戶端推送消息,本文將詳細介紹SpringBoot實現消息推送功能的具體指南,需要的朋友可以參考下
    2025-12-12
  • Java中SimpleDateFormat方法超詳細分析

    Java中SimpleDateFormat方法超詳細分析

    這篇文章主要給大家介紹了關于Java中SimpleDateFormat方法超詳細分析的相關資料,SimpleDateFormat 是一個以國別敏感的方式格式化和分析數據的具體類,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • 基于Spring Boot 的小區(qū)人臉識別與出入記錄管理系統(tǒng)功能

    基于Spring Boot 的小區(qū)人臉識別與出入記錄管理系統(tǒng)功能

    文章介紹基于SpringBoot框架與百度AI人臉識別API的小區(qū)出入管理系統(tǒng),實現自動識別、記錄及查詢功能,涵蓋技術選型、數據模型設計、接口開發(fā)與系統(tǒng)優(yōu)化方案,為智慧社區(qū)提供高效安全管理工具,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推薦)

    spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推

    這篇文章主要介紹了spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息的相關資料,需要的朋友可以參考下
    2018-01-01
  • Spring的Eureka續(xù)約(心跳檢測)詳解

    Spring的Eureka續(xù)約(心跳檢測)詳解

    這篇文章主要介紹了Spring的Eureka續(xù)約(心跳檢測)詳解,eureka?client每隔一定的時間,會給eureka?server發(fā)送心跳,保持心跳,讓eureka?server知道自己還活著,需要的朋友可以參考下
    2023-11-11
  • Java將Word文件轉為OFD文件

    Java將Word文件轉為OFD文件

    大家好,本篇文章主要講的是Java將Word文件轉為OFD文件,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 一種新的日期處理方式之JavaScript Temporal API

    一種新的日期處理方式之JavaScript Temporal API

    JavaScript Temporal API是一種為Web開發(fā)人員提供了一種新的處理日期和時間數據類型的方式。它的目的是使操作日期和時間更加簡單和可靠,而且不用擔心歷史時區(qū)問題或全球化協(xié)調時間(UTC)之類的問題,感興趣的同學可以參考閱讀
    2023-05-05
  • java 輸入某年某月某日,判斷這一天是這一年的第幾天

    java 輸入某年某月某日,判斷這一天是這一年的第幾天

    這篇文章主要介紹了java 輸入某年某月某日,判斷這一天是這一年的第幾天,需要的朋友可以參考下
    2017-02-02
  • Spring Boot修改啟動端口的方法

    Spring Boot修改啟動端口的方法

    下面小編就為大家?guī)硪黄猄pring Boot修改啟動端口的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論

柳林县| 新安县| 工布江达县| 江山市| 花垣县| 化州市| 新邵县| 沈丘县| 罗定市| 麻栗坡县| 开远市| 上饶市| 沭阳县| 固阳县| 剑阁县| 寻乌县| 天祝| 城口县| 长兴县| 无极县| 西和县| 永定县| 乌拉特前旗| 张家口市| 长顺县| 广宗县| 巫溪县| 民丰县| 莲花县| 武鸣县| 盐池县| 芜湖市| 化隆| 榆树市| 亳州市| 绥宁县| 从江县| 六安市| 蕉岭县| 南川市| 上思县|