CrazyMark:基于Spring EL的规则引擎

   日期:2024-12-26    作者:halreal 移动:http://ljhr2012.riyuangf.com/mobile/quote/47432.html

WTF?Spring EL还能做规则引擎?

CrazyMark:基于Spring EL的规则引擎

你没有看错,Spring EL不仅能做规则引擎,我还在生产环境大范围的使用了。

为什么要用Spring EL做规则引擎?

相对于别的规则引擎,Spring EL更加轻量级,学习成本更低,与函数式编程配合表现可能超乎你的想象!

我在生产中的应用

背景

之前做过一个财务系统,财务系统需要跟供应商做结算,由于我方在合作中处于弱势地位,导致供应商很多非分的要求我们也需要去满足,再加上供应商的数量非常多,并且结算规则的变化非常的快,因此需要设计的非常的灵活,如果用传统硬编码的方式去做,可能导致代码逻辑异常复杂,而且需要改动得非常频繁。

为了解决这个问题,我打算引入脚本引擎去简化开发,降低系统复杂度,在考察过后,最终决定用Spring EL。

如何做

首先,我们先来定义一个结算的基础对象

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Order {

private String userId;

private Integer age;

//是否是新客

private Boolean isNew;

private LocalDate orderDate;

private BigDecimal price;

}

复制代码

如果有一个供应商有一条结算规则是分成订单金额的80%,我们可以这样计算


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号