主要观点总结
本文介绍了如何使用Drools规则引擎实现根据不同规则计算商品折扣的需求,包括引入依赖、创建配置类、定义业务模型、创建规则文件、定义Service层和Controller等步骤。
关键观点总结
关键观点1: 需求背景
根据文章描述,需要根据不同的规则计算商品折扣,如VIP客户增加5%的折扣,购买金额超过1000元的增加10%的折扣等,而且这些规则可能随时发生变化,甚至增加新的规则。
关键观点2: 技术选型
采用Drools规则引擎来实现,Drools是一个开源的业务规则引擎,可以很容易地与spring boot应用程序集成。
关键观点3: 实现步骤
1. 引入Drools相关依赖;2. 创建Drools配置类;3. 定义业务模型;4. 创建规则文件;5. 定义Service层;6. 添加Controller。
关键观点4: 具体实现细节
1. 使用KieContainer加载规则文件构建规则引擎;2. 创建OrderRequest类作为输入信息发送给定义的Drools规则中计算折扣金额;3. 定义CustomerType枚举,规则引擎会根据该值计算客户订单折扣百分比;4. 创建OrderDiscount类表示计算得到的最终折扣;5. 在drl文件中定义多个规则,根据订单请求计算折扣;6. 在Service层注入KieContainer实例并创建KieSession实例,设置全局参数和订单对象,触发规则计算折扣。
关键观点5: 项目推荐
推荐一个开源电商项目mall,包括前端商城项目和后端管理系统,能支持完整的订单流程,涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能。还提供了一个基于Spring Cloud+K8S的微服务项目实战视频教程。
文章预览
Boot+Cloud项目学习: macrozheng.com 前言 现在有这么个需求,网上购物,需要根据不同的规则计算商品折扣,比如VIP客户增加5%的折扣,购买金额超过1000元的增加10%的折扣等,而且这些规则可能随时发生变化,甚至增加新的规则。面对这个需求,你该怎么实现呢?难道是计算规则一变,就要修改业务代码,重新测试,上线吗。 其实,我们可以通过规则引擎来实现,Drools 就是一个开源的业务规则引擎,可以很容易地与 spring boot 应用程序集成,那本文就用Drools来实现一下上面说的需求吧。 引入依赖 我们创建一个spring boot应用程序,pom中添加drools相关的依赖,如下: < dependency > < groupId > org.drools groupId > < artifactId > drools-core artifactId > < version > 7.59.0.Final version > dependency > < dependency > < groupId > org.drools groupId > < artifactId > drools-compiler artifactId >
………………………………