上节课《Drools集成CDI(一)》中我们介绍了CDI的基本使用,这节课带大家学习一下Drools如何集成CDI。
首先使用drools7的话需要在正常使用CDI的基础上添加drools-cdi的依赖:
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-cdi</artifactId>
<version>${drools.version}</version>
</dependency>
beans.xml和kmodule.xml配置与之前的使用方式一致;
public class Chapter4 {
@KSession
KieSession kieSession;
@Inject
Chapter4(KieSession kieSession){
this.kieSession = kieSession;
}
public static void main(String[] args) {
Weld weld = new Weld();
Chapter4 chapter4 = weld.initialize().instance().select(Chapter4.class).get();
chapter4.doFire();
}
private void doFire(){
int nums = kieSession.fireAllRules();
System.out.println("Fire " + nums + " rules!");
}
}
将获取对象的方式由Weld替换为SeContainer:
SeContainer seContainer = null;
try {
seContainer = SeContainerInitializer.newInstance().initialize();
Chapter4 chapter4 = seContainer.select(Chapter4.class).get();
chapter4.doFire();
} finally {
if (seContainer != null && seContainer.isRunning()) {
seContainer.close();
}
}
更多详细内容请参考《Drools7规则引擎进阶教程》
原文链接:https://www.choupangxia.com/topic/detail/91
CSDN学院:《Drools7规则引擎进阶教程》
CSDN学院:《Drools7规则引擎入门教程》
CSDN学院:《Drools7系列优惠套餐》