`
zuimeitulip
  • 浏览: 58567 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

spring整合规则

 
阅读更多

开发环境
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
                
分享到:
评论

相关推荐

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于SpringCloud的微服务工程将上述技术组件逐步落地,让大家看得懂做得出学得会。 00、硅谷学习_SpringBoot_源码、课件 01.硅谷学习_SpringCloud_前提概述 ...

    spring boot整合shiro实现url请求过滤

    本demo为Spring boot整合shiro,以mybatis plus做dao层交互数据,实现了读取数据库用户数据实现用户登录,权限认证,读取数据库中用户对应的url请求,实现请求的过滤。自定义了relam和过滤器来实现这些功能

    尚硅谷SpringCloud视频(最新)

    除此之外,还通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于SpringCloud的微服务工程将上述技术组件逐步落地,让大家看得懂做得出学得会。 00、尚硅谷_SpringBoot_源码、课件 01.尚硅谷_SpringCloud_前提...

    规则引擎drools与spring整合

    NULL 博文链接:https://goodluck-wgw.iteye.com/blog/1766228

    Spring Boot+Drools规则引擎整合详解

    本篇文章主要介绍了Spring Boot+Drools规则引擎整合,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    07_SpringCloud-zuul整合分布式中心动态修改路由规则.md

    结合前面我们把路由规则写在项目的配置文件中.现在把结合SpringCloud-config 分布式配置中心,让配置文件更加的灵活。使用actuator 手动刷新,后面在说springcloud 消息总线 实现动态刷新配置。

    spring.net中文手册在线版

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...

    java Struts2+hibernate+Spring整合的通讯录

    java s2sh三大框架整合的通讯录系统 界面美观 (1) 通信录实现浏览或查找通信录中记录,能够添加,删除,修改记录等。 (2) 用户处于只有登录之后才可以添加,删除,修改记录;如果没有登录只可以查看信息。 (3) 用户...

    Spring高级之注解驱动开发视频教程

    Spring框架是一系列应用框架的核心,也可以说是整合其他应用框架的基座。同时还是SpringBoot的基础。在当下的市场开发环境中,Spring占据的地位是非常高的,基本已经成为了开发者绕不过去的框架了。它里面包含了...

    SpringCloud Alibaba使用(二) - sentinel fallback整合ribbon+openFeign 服务熔断功能 规则持久化.zip

    SpringCloud Alibaba使用(二) - sentinel fallback整合ribbon+openFeign 服务熔断功能 规则持久化.zip

    规则引擎Drools入门实战案例

    Spring整合Drools Spring Boot整合Drools WorkBench Drools实战 个人所得税计算器 信用卡申请 保险产品准入规则 规则引擎,全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的...

    spring cloud 配置源码.zip

    包含第一代springcloud全部配置代码,各项详细测试案例。 hystrix: 降级、熔断、限流详细配置;config:加密传输,动态配置刷新等配置;eureka:服务注册中心,各项参数详细配置等

    springMongodb参考文档中文版

    排序规则 9.6.8。JSON模式 9.6.9。流利的模板API 9.7。按实例查询 9.7.1。介绍 9.7.2。用法 9.7.3。示例匹配器 9.7.4。执行一个例子 9.7.5。无类型示例 9.8。减少地图操作 9.8.1。使用示例 9.9。脚本操作 9.9.1。...

    spring boot 集成 websocket 与 drools 的实例

    spring boot 集成 websocket 来实现页面实时更新前端数据,通知前端来做响应的操作。使用drools来实现规则判断来实现业务逻辑

    rulesengine:Spring-Boot和Nashorn中的简单规则引擎

    这是用Java中的spring-boot构建的简单规则引擎。 规则使用纯JavaScript。 Nashorn脚本引擎允许运行时加载和评估规则。指示通过克隆存储库安装应用程序生成并运行应用 $ cd rulesengine $ gradlew bootRun呼叫其余...

    2018年Java Activiti6.x 视频整合Spring Boot/JPA/WEB框架实战

    2018年Java Activiti6.x 视频整合Spring Boot/JPA/WEB框架实战 01 Activiti介绍与搭建开发环境 02 运行官方例子 03 编写第一个Activiti程序 04 流程引擎配置与服务组件 05 Activiti数据库介绍 06 API(1)...

    spring-boot-集成mybatis带分页page

    注意 mapper 配置,因为参数名固定,所以接收参数使用的对象,按照 Spring Boot 配置规则,大写字母都变了带横线的小写字母。针对如 IDENTITY(对应i-d-e-n-t-i-t-y)提供了全小写的 identity 配置,如果 IDE 能自动...

    SpringSecurity 整合 JWT.docx

    2、服务器验证登录鉴权,如果改用户合法,根据用户的信息和服务器的规则生成 JWT Token 3、服务器将该 token 以 json 形式返回(不一定要json形式,这里说的是一种常见的做法) 4、用户得到 token,存在 ...

    规则引擎Drools 之 springboot 集成、热加载

     如果对drools还不是特别熟悉的,可以看下 《规则引擎Drools 之 初识drools》这篇文章;  本文源码,github 传送门:https://github.com/vincent9309/drools:  系统架构如下: 二、项目目录结构 三、...

    mq.rar springcloud整合rabbit java工程

    RabbitMQ依据指定的转发规则进行消息的转发、缓冲和持久化操作,主要用在多服务器间或单服务器的子系统间进行通信,是分布式系统标准的配置。 spring-cloud-stream-binder-rabbit SubscribableChannel ...

Global site tag (gtag.js) - Google Analytics