开发环境
IDE intellij idea 12
grails-1.3.7
一、安装插件 grails install-plugin drools-gorm 二、加入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" class="com.drools.demo.spring.DroolsSpringDemo"> <property name="kBaseHelloWorld" ref="kBaseHelloWorld" /> </bean> </beans> 3.DroolsSpringDemo 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() } }
HelloWorld.drl文件内容 package com.drools.demoimport com.drools.demo.main.Message; rule "Hello World" dialect "mvel" when m : Message( status == Message.HELLO, message : message ) then System.out.println( message ); modify ( m ) { message = "Goodbyte cruel world", status = Message.GOODBYE }; System.out.println( message ); end rule "Good Bye" dialect "java" when Message( status == Message.GOODBYE, message : message ) then System.out.println( message ); end
相关推荐
- **集成Spring框架**:使用Spring框架的IoC容器管理规则模型的对象创建和依赖注入,确保规则模型的独立性和可重用性。 - **设计规则执行器**:设计一个规则执行器组件,它负责接收业务请求,调用相应的规则模型,并...
在压缩包文件`spring_gateway_security_webflux`中,可能包含了示例代码或配置文件,用于演示如何在Spring Cloud Gateway中集成Spring Security,实现统一登录认证鉴权。这些资源可以帮助开发者更快地理解和实践上述...
drools6.4+spring集成是一项将业务规则引擎Drools与Spring框架相结合的技术实践,旨在利用Drools的强大规则处理能力,结合Spring的灵活应用管理,构建高效、可维护的业务系统。在这个项目实例中,我们将深入探讨如何...
本文将深入探讨如何进行"Spring整合Mybatis"的基础搭建,以及涉及到的相关技术点。 首先,Spring框架是一个开源的应用程序框架,它简化了Java EE应用的开发,提供了依赖注入(DI)和面向切面编程(AOP)等功能。在...
在"spring整合rabbitmq需要的jar包(spring版本4.2.0)"中,提到了几个核心的库文件,它们分别是: 1. **spring-rabbit-1.5.1.RELEASE.jar**:这是Spring对RabbitMQ的官方支持模块,它提供了与RabbitMQ集成的API和...
** Drools 规则引擎与 Spring 整合详解 ** Drools 是一个开源的、基于Java的业务规则管理系统(BRMS),它提供了一个规则引擎,用于在应用程序中执行业务规则。Spring 框架是Java开发中最常用的应用框架,它简化了...
- Spring还提供了对其他库的集成,如JDBC、JMS、JTA等,以及对其他框架如Hibernate、Struts2的整合支持。 2. **Hibernate框架**: - Hibernate是一个对象关系映射(Object-Relational Mapping,ORM)框架,它简化...
Spring、Mybatis和Spring MVC是Java开发中常用的三大框架,它们各自负责不同的职责,并通过合理的集成,构建出高效、灵活的Web应用。本整合包包含了这三个框架的核心组件和依赖,适用于学习、测试或快速搭建项目。 ...
【Servlet与Spring整合详解】 在Java Web开发中,Servlet与Spring框架的整合是常见的实践,尤其是在构建企业级应用时。Spring作为一个强大的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器...
提供的资源“Shiro和Spring整合完全可运行”应该是一个包含完整配置和示例代码的项目。通过这个实例,你可以了解如何设置 Realm,定义权限和角色,以及如何在控制器和视图层实现登录、权限控制等功能。通过实际运行...
本教程将深入探讨如何在Spring Boot项目中整合Spring Data JPA,实现高效且简洁的数据持久化。 首先,Spring Boot整合Spring Data JPA的基础是引入相关的依赖。在`pom.xml`或`build.gradle`文件中,我们需要添加...
在Web项目中集成Spring是一个常见的开发实践,Spring框架以其强大的依赖注入、面向切面编程以及丰富的功能模块,极大地简化了Java Web应用的开发。本文将深入探讨如何在Web项目中集成Spring,包括Spring MVC的使用、...
5. **数据访问集成**:Spring支持多种数据访问技术,包括JDBC、Hibernate、MyBatis等,提供统一的API进行数据操作。 **Servlet的角色** 1. **HTTP服务器端接口**:Servlet是Java EE平台中用于接收和处理HTTP请求的...
将Quartz与Spring整合,可以方便地管理和控制定时任务,同时利用Spring的依赖注入和管理功能,提高代码的可维护性和可测试性。 Quartz的核心概念包括Job、Trigger和Scheduler。Job是实际需要执行的任务,Trigger是...
6. 控制事务:Spring的声明式事务管理可以在配置文件中定义事务规则,使得在业务处理过程中,一旦发生异常,所有更改都将自动回滚,保证数据的一致性。 通过以上步骤,我们可以构建出一个稳定、高效的企业级应用。...
在“struts+habernate+spring整合实例”中,这三个框架协同工作,实现了高效、灵活的业务逻辑处理。具体步骤可能包括: 1. **配置环境**:首先,需要在项目中引入这三个框架的库,并配置相关的XML文件,如struts-...
在Spring MVC项目中集成Spring Security,可以实现用户认证、权限控制等功能,大大增强了应用的安全性。 首先,让我们了解一下Spring Security的核心组件和概念: 1. **Authentication(认证)**:验证用户身份的...
2. **集成过程**:在SpringMVC项目中集成SpringSecurity,首先需要在pom.xml文件中引入相应的依赖,接着配置SpringSecurity的XML配置文件,定义安全规则、用户认证方式等。 3. **默认账户和密码**:“admin,admin...
Spring 和 Apache Shiro 的整合是企业级应用中常见的安全框架集成方式,主要用于实现用户认证、授权和会话管理等功能。Spring 提供了强大的依赖注入和面向切面编程能力,而Shiro则以其轻量级、易用性在权限管理领域...
在Spring整合JMS的过程中,我们通常会使用`DefaultMessageListenerContainer`或`SimpleMessageListenerContainer`类来消费消息。这些容器提供了与JMS提供者(如ActiveMQ、RabbitMQ等)的连接管理,并且支持事务性...