公司项目有一个需求,传入一系列的值,按照一定的规则去匹配这些值,根据不同的匹配结果,给出不同的结果。
最笨的方法就是使用java代码去实现,这样的问题就是,如果规则变动了,就需要去频繁的改动代码,耦合太高,后来百度之后,发现了Drools这个东西,就用了起来。
但是由于使用的人不多,网上的资料也不是很多,同时因为版本问题,很多api都是老旧的,所以折腾了不少时间才实现,当然也还有一些问题存在,没有时间去优化了。现在先整理一下Drools的搭建使用吧!
因为使用的是Maven项目,所以在pom.xml文件中添加依赖
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>7.5.0.Final</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
<version>7.5.0.Final</version>
</dependency>
这里选择是的7.5.0版本的,当时选了很多个版本,但是不知道为什么,好像跟我们项目里的其他jar包一直有冲突,最终选了这个版本,所以也导致了,在网上找不到足够的资料。。。
接下来,会讲两种方式实现Drools,一种是将规则文件配置在项目中,一种是动态读取