2024年Drools规则引擎实践直白总结,应届毕业生java面试高难度题

总结

总的来说,面试是有套路的,一面基础,二面架构,三面个人。

最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友

三面蚂蚁金服成功拿到offer后,他说他累了

三面蚂蚁金服成功拿到offer后,他说他累了

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

注:如下使用的是ResourceFactory.newClassPathResource获取drl文件,其实里面封装了很多的获取资源的方式(如:newFileResource、newByteArrayResource、newInputStreamResource等)

//JAVA代码:

Resource resource = ResourceFactory.newClassPathResource(“rules/rule.drl”);

KieHelper helper = new KieHelper();

KieBase kieBase = helper.addResource(resource, ResourceType.DRL).build();

StatelessKieSession kieSession = kieBase.newStatelessKieSession();

kieSession.execute(msg);

  1. 直接通过drools spring配置文件实现规则添加及运行:
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:kie=“http://drools.org/schema/kie-spring”

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://drools.org/schema/kie-spring http://drools.org/schema/kie-spring.xsd">

<kie:kmodule id=“kmodule”>

<kie:kbase name=“kbase” packages=“zuowenjun.drools.rules”>

</kie:kbase>

</kie:kmodule>

JAVA代码:

//配置,此处只需通过@ImportResource导入配置文件,自动注册成BEAN即可,当然这里是一个单独配置文件,实际也可以直接放在spring boot 的applcation的启动类上即可。

@Configuration

@ImportResource(“classpath:spring-drools.xml”)

public class DroolsBeansConfig {

}

//BEAN类中直接使用即可

@Component

public class RuleDemo {

@Autowired

private KieBase kbase;//KieBase是单例

public Object checkRule(Message msg){

StatelessKieSession kieSession = kbase.newStatelessKieSession();//session这里尽可能每次都重新创建,成本也比较低,不要搞成单例的,这里是无状态的,用有状态的也行

kieSession.execute(msg);

return msg;

}

}

//如下是上面所有实例中用到的Message类(普通的javaBean)

public class Message {

private Long id;

private String title;

private String createBy;

private Date createDate;

private String content;

private Long enabledFlag;

private Boolean isReply;

private String replyBy;

private Date replyDate;

private String replyContent;

//省略getter、setter方法 …

}

  1. 还有一种是通过动态创建Kjar来实规则添加及运行,关键步骤如下:

创建 pom.xml-》创建 kmodule.xml-》添加规则内容-》后面是创建session-》执行即可;

代码就不再贴出了,可详见网上资源。

4. Drl规则内容几种写法测试代码

public Object checkRule(Object msg) {

List drlContentList=new ArrayList<>();

//当一个Fact对象为集合对象时的判断

//这个是当把某个集合(List)当成一个fact传入工作内存中后,规则有效

drlContentList.add(“package zuowenjun.drools.rule.demo\n” +

“import cn.zuowenjun.model.Message;\n” +

“import java.util.List;\n” +

“rule “test

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值