基于开源框架urule的规则引擎

如果我们的业务给出的是零散的逻辑规则,那么可以使用规则集来实现;如果给出的是表格形式的业务规则,那么可以直接使用对应的决策表或交叉决策表(决策矩阵)来实现;如果需要对实体进行综合评分,则可以使用评分卡或复杂评分卡来实现;最后还可以通过规则流对一系列复杂的规则个体进行编排,将这个规则流作为实际业务规则调用入口,从而实现任意复杂的业务规则。

可以基于开源框架urule进行二次开发:https://github.com/youseries/urule

规则引擎:http://www.bstek.com/resources/doc/

另外有一种更好的规则引擎:drools,其github更新更加活跃:https://github.com/kiegroup/drools

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 Spring 框架下实现规则引擎,可以使用 Drools,它是一个基于规则开源规则引擎,可以与 Spring 框架集成。下面是一个简单的示例: 1. 首先,需要在 pom.xml 文件中添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.drools</groupId> <artifactId>drools-core</artifactId> <version>${drools.version}</version> </dependency> <dependency> <groupId>org.drools</groupId> <artifactId>drools-spring</artifactId> <version>${drools.version}</version> </dependency> </dependencies> ``` 其中,${drools.version} 需要替换为 Drools 的版本号。 2. 创建一个规则文件,例如 rules.drl: ```java package com.example.rules; rule "Rule 1" when $message : String( this == "Hello" ) then System.out.println( "Greeting: " + $message ); end ``` 这个规则文件中定义了一个规则,当输入的消息为 Hello 时,输出 "Greeting: Hello"。 3. 创建一个规则引擎服务,例如 RuleEngineService: ```java package com.example.service; import org.kie.api.KieBase; import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import org.springframework.stereotype.Service; @Service public class RuleEngineService { private KieSession kieSession; public RuleEngineService() { KieServices kieServices = KieServices.Factory.get(); KieContainer kieContainer = kieServices.getKieClasspathContainer(); KieBase kieBase = kieContainer.getKieBase("rules"); kieSession = kieBase.newKieSession(); } public void execute(String message) { kieSession.insert(message); kieSession.fireAllRules(); } } ``` 这个服务中使用了 Drools 的 API 创建了一个 KieSession,用于加载规则文件并执行规则。 4. 在需要使用规则引擎的地方注入 RuleEngineService,并调用 execute 方法即可: ```java @Autowired private RuleEngineService ruleEngineService; public void handleMessage(String message) { ruleEngineService.execute(message); } ``` 这个例子仅仅是 Drools 在 Spring 中的一个简单用法,Drools 还有更多的功能和用法,可以根据具体需求进行学习和实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值