最近在搞规则引擎,无意之间发现一个去年才开源的规则引擎jar包。
现在我们就来 看一下easy-rules 的使用。官方github 链接 https://github.com/j-easy/easy-rules
这是它给的解释,核心功能有这几种的编程方式。
这里我先写几个小例子给大家看看,首先新建一个pom 的工程,并引入相关的jar 包。
先写第一种mvel 和spel 规则的例子
给一个需求,判断 一个人的年龄大于18 才是成人,才让喝酒。
先定义一个实体类
get set tostring ,写一个例子测试一下
name 就是规则名称,description 是规则详情。priority这是优先级,越小月先执行。when 就是条件判断,then 就是下一步的处理方法。
这里使用的person.age 就是使用了视频spel 表达式。在初始化的时候要先绑定。
在把这个rule 规则注入这个引擎当中,参数绑定,在执行。
我们执行一下,看看,首先初始化年龄是10.
结果是false,初始化age是20 ,结果是
第二种 我们使用规则描述符
同一个需求
这里面就了两个不一样。condition 就是when判断,actions 就是then ,后续处理的方法。
在写一个例子
上面没有变化,就是生成rule 的方式变了。
还用刚才20的年龄,执行一下,看控制台打印
我们再看最后一种
基于注解的pojo变成,这和第二种差不多
其他都一样,这里面有几个参数
我们用的第一个跳过,因为里面可以写好多的@action ,运行一下看一下结果
这就是easy-drools 最简单基本的应用,复杂的应用请看官方文档。