当前位置: 首页 > news >正文

创同盟网站太原做响应式网站

创同盟网站,太原做响应式网站,windows搭建wordpress,做旅游网站的设计感想1、简述 Drools 是一个强大的业务规则引擎#xff0c;适用于需要动态决策或规则管理的场景。它允许开发人员将业务逻辑与应用代码分离#xff0c;使得业务人员可以通过规则文件维护和更新规则#xff0c;而无需修改应用代码。本文将介绍 Drools 的基本概念、配置方式#…1、简述 Drools 是一个强大的业务规则引擎适用于需要动态决策或规则管理的场景。它允许开发人员将业务逻辑与应用代码分离使得业务人员可以通过规则文件维护和更新规则而无需修改应用代码。本文将介绍 Drools 的基本概念、配置方式并通过样例展示如何创建和使用规则。 2、核心特点 Drools 是一个基于 Java 的开源规则引擎由 Red Hat 维护。它使用 DRL (Drools Rule Language) 规则文件定义业务逻辑可以根据预设的规则推理和决策。Drools 特别适用于需要动态调整规则的系统例如电商促销、保险费率计算、信用评分等。 在 Drools 中以下是几个关键概念 规则Rule条件与操作的组合。规则由 when 部分条件和 then 部分操作组成。Fact事实Drools 中的业务数据对象。Fact 是规则推理的依据。规则引擎Rule Engine执行并管理规则的核心组件。工作内存Working Memory存储事实的临时内存规则引擎在其中执行推理。 3、集成 Drools 7.30.0 及以上的版本已经开始支持 JDK 11但在使用 JDK 17 或更高版本时Drools 8.x 版本更稳定。 3.1 Drools 配置 在项目中使用 Drools 需要引入依赖常用的依赖包包括 drools-core 、drools-compiler 等。请确保依赖的是最新的 Drools 版本。在 Maven 项目中可以在 pom.xml 文件中添加以下依赖 dependencies!-- Drools 核心依赖 --dependencygroupIdorg.drools/groupIdartifactIddrools-core/artifactIdversion8.36.0.Final/version/dependency!-- Drools 编译器 --dependencygroupIdorg.drools/groupIdartifactIddrools-compiler/artifactIdversion8.36.0.Final/version/dependency!-- Drools 核心库 --dependencygroupIdorg.drools/groupIdartifactIddrools-core/artifactIdversion8.36.0.Final/version/dependency!-- Drools MVEL 模块 --dependencygroupIdorg.drools/groupIdartifactIddrools-mvel/artifactIdversion8.36.0.Final/version/dependency /dependencies3.2 创建 Fact 类 Product package com.example.model;public class Product {private String type;private int discount;public Product(String type) {this.type type;}public String getType() {return type;}public void setType(String type) {this.type type;}public int getDiscount() {return discount;}public void setDiscount(int discount) {this.discount discount;} }3.3 配置 DroolsConfig 在 DroolsConfig 配置类中我们可以使用 KieFileSystem 加载 resources/rules 目录下的 .drl 文件。 import org.kie.api.KieServices; import org.kie.api.builder.KieBuilder; import org.kie.api.builder.KieFileSystem; import org.kie.api.builder.KieModule; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import org.kie.internal.io.ResourceFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import java.io.IOException; import java.util.Arrays;Configuration public class DroolsConfig {private final ResourceLoader resourceLoader;public DroolsConfig(ResourceLoader resourceLoader) {this.resourceLoader resourceLoader;}Beanpublic KieContainer kieContainer() throws IOException {KieServices kieServices KieServices.Factory.get();KieFileSystem kieFileSystem kieServices.newKieFileSystem();// 使用 PathMatchingResourcePatternResolver 解析规则文件PathMatchingResourcePatternResolver resolver new PathMatchingResourcePatternResolver();Resource[] ruleFiles resolver.getResources(classpath*:rules/*.drl);// 将所有规则文件添加到 KieFileSystemArrays.stream(ruleFiles).forEach(ruleFile - {try {kieFileSystem.write(ResourceFactory.newFileResource(ruleFile.getFile()));} catch (Exception e) {throw new RuntimeException(Error reading rule file: ruleFile, e);}});// 构建 KieModuleKieBuilder kieBuilder kieServices.newKieBuilder(kieFileSystem);kieBuilder.buildAll();KieModule kieModule kieBuilder.getKieModule();// 返回 KieContainerreturn kieServices.newKieContainer(kieModule.getReleaseId());} }3.4 示例规则文件 在 src/main/resources/rules 文件夹下创建示例 .drl 规则文件例如 product.drl package rules;import com.example.model.Product;rule Gold Product Discountwhenproduct : Product(type GOLD)thenproduct.setDiscount(20);System.out.println(Applying 20% discount for GOLD product); endrule Silver Product Discountwhenproduct : Product(type SILVER)thenproduct.setDiscount(10);System.out.println(Applying 10% discount for SILVER product); end3.5 创建使用规则的服务类 创建一个服务类来应用规则 package com.example.service;import com.example.model.Product; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class DiscountService {private final KieContainer kieContainer;Autowiredpublic DiscountService(KieContainer kieContainer) {this.kieContainer kieContainer;}public void applyDiscount(Product product) {KieSession kieSession kieContainer.newKieSession();kieSession.insert(product);kieSession.fireAllRules();kieSession.dispose();} }3.6 测试配置 创建一个测试类来运行并验证 Drools 配置是否正确 package com.example;import com.example.model.Product; import com.example.service.DiscountService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component;Component public class DroolsTestRunner implements CommandLineRunner {Autowiredprivate DiscountService discountService;Overridepublic void run(String... args) throws Exception {Product goldProduct new Product(GOLD);discountService.applyDiscount(goldProduct);System.out.println(Gold product discount: goldProduct.getDiscount() %);Product silverProduct new Product(SILVER);discountService.applyDiscount(silverProduct);System.out.println(Silver product discount: silverProduct.getDiscount() %);} }启动 Spring Boot 应用后将输出如下验证规则已成功应用 Applying 20% discount for GOLD product Gold product discount: 20% Applying 10% discount for SILVER product Silver product discount: 10%4、使用场景 Drools 适用于多种场景以下是一些常见的应用 电商促销规则根据产品类别、用户等级、订单金额等动态应用折扣和促销策略。信用评分系统根据用户的历史记录和交易行为生成信用评分。保险费率计算根据客户的年龄、性别、健康状况和保险类型计算保费。风险检测在金融或电商平台中通过规则引擎检测欺诈行为。 5、总结 Drools 是一款灵活且功能强大的规则引擎允许开发人员轻松管理复杂的业务规则。通过将业务逻辑封装在规则文件中Drools 提供了便于维护和扩展的解决方案。希望本文对 Drools 的入门和使用有所帮助。
http://www.hkea.cn/news/14353433/

相关文章:

  • 网站备案通过学做ps的软件的网站有哪些内容
  • 太原建设局网站建网站需要什么知识
  • 佛山手机网站建设优化如何建立网页
  • 适合当手机主页的网站网站做一下301跳转
  • 陕西省住房和建设厅网站做网站有必要用wordpress
  • 学手机网站建设深圳网站关键词推广
  • cms是啥百度seo文章
  • vs210做网站青岛建站seo公司
  • 一个空间怎么放多个网站昆明做网站哪家
  • 筑巢网站后台管理系统西乡网站建设公司
  • 一个公司是否能备案多个网站网站建设验收报告模板
  • wordpress英文建站网站开发广告语
  • 无锡网站开发平台商业门户网站怎么运营
  • 福建省建设局网站实名制做时时网站要多少钱
  • 建设信用卡积分兑换网站交投建设集团网站
  • 有域名之后怎么做网站本地赣州网站建设
  • 中企动力做的电梯网站网站服务器配置单
  • 公司网站域名更改怎么做上海有名的网站建设公司
  • 4k中国视频素材网站浏览器正能量网站免费图片
  • 典当行网站源码合肥有做网站的吗
  • 网站建设 核对流程网站备案时 首页
  • 上饶市网站建设黄岛区做网站的
  • 做告状网站豌豆荚app下载
  • 牛商网营销型网站建设亚马逊雨林视频纪录片
  • 新网站怎么让百度收录企业网站管理系统视频教程
  • 公司建站多少钱网站站点创建成功了该怎么做
  • 建设官方网站的费用账务处理成都网站建设哪家设计好
  • 免费建站的网站哪个好网站建设如何传视频教程
  • 静态网站怎么维护谷歌seo优化技巧
  • 网站的主题是什么top域名的网站