spring 和 drools 整合

来源:互联网 发布:js 事件触发target 编辑:程序博客网 时间:2024/06/06 02:22

http://liureying.blog.163.com/blog/static/6151352011111810916588/?suggestedreading

介绍:drools 版本5.1.1 如何跟spring  版本2.5.6  集成


1.<beans>加入drools的命名空间
http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd

2.增加一个drools-spring jar

3.spring 配置文件声明KnowledgeBase
<drools:kbase id="kBase">
<drools:resources>
<!--drools:resource type="规则文件类型" source="规则文件" -->
<drools:resource type="DRL" source="classpath:com/demo/insert.drl" />
</drools:resources>

<!-- drools:configuration> <drools:mbeans enabled="true" /> <drools:event-processing-mode 
mode="STREAM" /> </drools:configuration -->

</drools:kbase>
4.声明与规则引擎进行交互session.
StatelessKnowledgeSession在spring内配置
<drools:ksession id="ksession1" type="stateless" name="stateless1" kbase="kBase" />

StatefulKnowledgeSession在spring内配置
<drools:ksession id="session" type="stateful" kbase="kBase" />

5.运行代码
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "com/demo/spring/mydrools.xml" });
StatefulKnowledgeSession session = (StatefulKnowledgeSession) context
.getBean("session");

session.fireAllRules();
session.dispose();
System.out.println("end");