如何使用drools和Spring整合详解编程语言
一、安装插件
grails install-plugin drools-gorm
二、引入相关的依赖jar包
加入drools-spring-5.2.0.Final.jar,drools-grid-impl-5.2.0.Final.jar
三、程序源码实例
1.conf/spring/resources.xml配置文件
?xml version= 1.0 encoding= UTF-8 ?
beans xmlns= http://www.springframework.org/schema/beans
xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
import resource= drools.xml /
/beans
2.drools.xml配置文件
?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:drools= http://drools.org/schema/drools-spring
xsi:schemaLocation=
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
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
drools:kbase id= kBaseHelloWorld
drools:resources
! 不是 drools:resource type= DRL source= classpath:com/jsptpd/rjy/zyj/service/Login.drl /
drools:resource type= DRL source= classpath:drools/HelloWorld.drl /
/drools:resources
/drools:kbase
! 不能用这个,这样是单例,并发有问题
! drools:ksession id= kSessionHelloWorld type= stateful kbase= kBaseHelloWorld /
bean id= droolsSpringDemo >
property name= kBaseHelloWorld ref= kBaseHelloWorld /
/bean
/beans
3.DroolsSpringDemo java代码实例
package com.drools.demo.spring
import com.drools.demo.main.Message
import org.drools.runtime.StatefulKnowledgeSession
class DroolsSpringDemo {
def kBaseHelloWorld
def helloWorld(){
new Thread(new Runnable() {
void run() {
while (true){
Thread.sleep(100)
run()
}
}
}) .start()
new Thread(new Runnable() {
void run() {
while (true){
Thread.sleep(76)
run()
}
}
}) .start()
new Thread(new Runnable() {
void run() {
while (true){
Thread.sleep(43)
run()
}
}
}) .start()
while (true);
}
private run() {
StatefulKnowledgeSession kstateful = kBaseHelloWorld.newStatefulKnowledgeSession()
Message message = new Message();
message.setMessage( Hello World );
message.setStatus(Message.HELLO);
kstateful.insert(message);
kstateful.fireAllRules();
kstateful.dispose();
}
}
4.测试实例
class DemoDroolsSpringTest extends GroovyTestCase{
def droolsSpringDemo
public void testSomething() {
droolsSpringDemo.helloWorld()
}
}
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14629.html
cgojavaxml相关文章
- batch spring 重复执行_Spring Batch批处理
- 基于 Maven 的多模块 Java ( Spring ) 项目构建详解编程语言
- 使用Spring定时任务并且通过AOP监控任务执行情况详解编程语言
- Java使用Spring发邮件详解编程语言
- Spring错误:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.B详解编程语言
- 使用 Spring 2.5 TestContext 测试框架详解编程语言
- mq 使用Spring发送,消费topic和queue消息详解编程语言
- Spring详解(六)——AspectJ 实现AOP编程语言
- spring实现定时任务的两种方式详解编程语言
- Spring Boot入门第二天:一个基于Spring Boot的Web应用,使用了Spring Data JPA和Freemarker。详解编程语言
- Spring Cloud之Swagger2API接口管理详解编程语言
- Spring Boot2.0之整合JSP详解编程语言
- Spring Boot Runner启动器详解编程语言
- Spring Boot日志集成实战详解编程语言
- Spring Cloud Config 使用SVN方式的相关配置详解编程语言
- Spring Boot(十一):Spring Boot中MongoDB的使用详解编程语言
- Spring Boot(四):thymeleaf使用详解编程语言
- Spring 自动装配;方法注入详解编程语言
- spring项目使用mave将第三方jar包打进war包中详解编程语言
- spring boot 接口返回值去掉为null的字段详解编程语言
- Spring Boot 2 + JPA / Hibernate 5 注入 SessionFactory 的正确姿势详解编程语言
- Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase