Drools引擎学习】的更多相关文章

首先上一段话: 为提高效率,管理流程必须自动化,即使现代商业规则异常复杂.市场要求业务规则经常变化,系统必须依据业务规则的变化快速.低成本的更新.为了快速.低成本的更新,业务人员应能直接管系统中的规则,不需要程序开发人员参与. 作为一名java程序员,我是这么理解的.在现代社会中,很多事情的处理都需要一个流程.哈哈,比如你户口本丢了,你得求爷爷,告奶奶,找这个签字,找那个盖章,最终把问题解决.这叫程序,也就是流程. 这是我昨天画的请假流程.如果通过引擎来做,就有个什么好处呢,就是自动流转,引擎驱…
Drools 函数学习 函数是定义在规则文件当中一代码块,作用是将在规则文件当中若干个规则都会用到的业务操作封装起来,实现业务代码的复用,减少规则编写的工作量.函数的编写位置可以是规则文件当中 package 声明后的任何地方具体语法如下: function void/Object functionName(Type arg...) { /*函数体的业务代码*/ }示例代码: import java.util.List; import java.util.ArrayList; /* *一个测试函…
Drools 查询学习查询以 query 关键字开始,以 end 关键字结束,在 package 当中一个查询要有唯一的名称,查询的内容就是查询的条件部分,条件部分内容的写法与规则的 LHS 部分写法完全相同. 1.无参数查询 代码语法如下: query "query name" #conditions end 示例代码: query "testQuery" customer:Customer(age>30,orders.size >10) end 查询…
NVelocity模板引擎学习笔记 学习模板引擎有一段时间现在做一些总结…
在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javascript引擎.而javascript引擎的实质就是帮我们把带有JavaScript代码的伪THTML语句编译为HTML. 如果有不了解的朋友,可以前往这两篇文章: 淘宝购物车页面 PC端和移动端实战 淘宝购物车页面 智能搜索框Ajax异步加载数据 源码地址: GitHub:Uncle-Keith 回…
jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流程代码:if - else - unless ,case 可重用的jade块Mixins 模板继承(extends) 模板包含(include) jade环境搭建 打开WebsStorm9.0.3,File—New Project…,project type选择Node.js Express App…
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考),若是一点也不懂,那下面的一切都将无从谈起,其实有编程基础的话,学起来也蛮快的. B.下载并安装集成开发工具.最常用的是Flash Builder(Flash Builder下载,以下简称FB),也可以使用Eclipse+FlexBuilder插件作为IDE(本人没试过,不知道好用不好用).FB不是免…
原地址:http://bbs.9miao.com/thread-44571-1-1.html 前言:早在群里看到大鸡蛋分享他们团队的Firefly引擎,但一直没有时间去仔细看看,恰好最近需要开发一个棋牌Game,朋友推荐了很多引擎,参考了众多引擎后,觉得Firefly是一个轻量级易扩展的引擎(好吧,其实就是我懒,懒得去看成熟引擎的手册),项目也没太多时间让我去熟悉大型引擎,于是决定了用Firefly.(很多人就问了:开源棋牌类game这么多,为什么非要自己开发一个,因为我懒,懒得去逐行读代码,我…
P2简介 P2是一款基于Javascript编写的HTML5 2D物理引擎,和Box2D.Nape等2D物理引擎一样,P2集成了各种复杂的物理公式和算法,可以帮助我们轻松的实现碰撞.反弹等物理现象的模拟. 学习资料 P2 API认识HTML5物理引擎P2 p2.js GITHUB下载地址 元素介绍 World(世界),这就是一个模拟的物理世界,所有的刚体和约束创建后都要放进来. Body(刚体),它是一块无限坚硬的物体.因此,在这块物体上任何两点之间的距离都被认为是固定的.Body(刚体)有自己…
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考),若是一点也不懂,那下面的一切都将无从谈起,其实有编程基础的话,学起来也蛮快的. B.下载并安装集成开发工具.最常用的是Flash Builder(Flash Builder下载,以下简称FB),也可以使用Eclipse+FlexBuilder插件作为IDE(本人没试过,不知道好用不好用).FB不是免…
原文详见http://away3d.com/tutorials/Introduction_to_Mouse_Picking.本文若有翻译不对的地方,敬请指出. 本教程详细介绍了Away3D 4.x中鼠标交互问题. 内容: n  介绍 n  Hello Picking n  Entity属性 n  View属性 n  UV绘制 n  总结 介绍 每个3D引擎都需要解决一个非常基础的问题:鼠标下面是什么?在3D图形学中,这通常会涉及到拾取.虽然这个问题看似简单.直接,但它实际上涉及到较难的数学和非常…
转自:https://blog.csdn.net/reggergdsg/article/details/50937433 最近项目中用到了volecity模板,这里做一下笔记,学习中...相比较 FreeMarker 而言,Velocity 更加简单.轻量级,但它的功能却没有 FreeMarker强大. 1,首先结合开发中遇到的一个问题:关于.vm文件引用外部JS的问题.vm文件引用外部js无效的问题.要搞清楚这个问题,我们需要先搞清楚到底什么是volecity模板?volecity模板是如何工…
转载原文地址:Fel是轻量级的高效的表达式计算引擎 Fel的问题 Fel的问题 Fel是轻量级的高效的表达式计算引擎 Fel在源自于企业项目,设计目标是为了满足不断变化的功能需求和性能需求. Fel是开放的,引擎执行中的多个模块都可以扩展或替换.Fel的执行主要是通过函数实现,运算符(+.-等都是Fel函数),所有这些函数都是可以替换的,扩展函数也非常简单. Fel有双引擎,同时支持解释执行和编译执行.可以根据性能要求选择执行方式.编译执行就是将表达式编译成字节码(生成java代码和编译模块都是…
博客:Java模板引擎性能对比  Thymeleaf性能偏低. 博客:Java模板引擎 FreeMarker   综合性的介绍,内容有点粗糙. 博客:JavaEE进阶——FreeMarker模板引擎 地址:https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81099114 这篇博客讲的很详细,可以认真学习下. ------------------------------------------------------ Java模板引擎之…
开发传统Java WEB项目时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用JSP页面进行页面渲染了.从而Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP,或其他模板引擎,如Velocity.FreeMarker等.它的语法与我们以前使用的EL表达式和JSTL标签库十分类似.接下来我们进行学习使用Thymeleaf! 一.新建一个Spring Boot项目添加Thymeleaf依赖:创建S…
通常velocity是配合spring mvc之类的框架在web中使用,但velocity本身其实对运行环境没有过多的限制,在单独的java application中也可以独立使用,下面演示了利用velocity模板引擎生成 『每日发货单』邮件内容: 一.先定义邮件内容模板:mail-template.vm <string>用户,您好:</string> <h2>以下是 $date.format('yyyy-MM-dd',$model.deliverDate,$conv…
按上回继续,前面写过一篇Spring MVC下的异常处理.及Spring MVC下的ajax异常处理,今天看下换成velocity模板引擎后,如何处理异常页面: 一.404错误.500错误 <error-page> <error-code>404</error-code> <location>/nopage.do</location> </error-page> <error-page> <error-code>…
velocity与freemaker.jstl并称为java web开发三大标签技术,而且velocity在codeplex上还有.net的移植版本NVelocity,(注:castle团队在github上也维护了一个版本)对于使用异构技术的团队(即要搞.NET又要搞JAVA),总是希望找一种通用的技术,兼容所有技术平台,以便降低学习成本,无疑velocity是一种值得考虑的选择. 一.与strtus2的集成 <dependency> <groupId>org.apache.vel…
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴出各个模块一览表,封装完毕我就更新一个状态,并且补上模块说明 模块名方法名方法说明封装状态用户基础模块userModeluserLogin用于用户登陆时的方法已封装regUser注册用户的方法已封装heartCheck用户更新心跳时间的方法已封装heartCheck用户心跳检测的方法已封装funds…
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证保持一个长连接也为推送消息提供 ======这段是一个以前同事给我的JAVA Socket验证机制的例子===========socket通信一般是找不到头这些的,要自定义封装通信消息类如开源框架netty,消息进出都有自定义加密和选择性压缩的socket不想http一样能找到某个方法,他就监听ip…
原地址:http://www.9miao.com/question-15-54981.html 传送门:学习笔记一学习笔记二学习笔记三 前言:学习笔记三是模块封装,这个在持续开发中会不断更新, 因为写出来不一定就是正确和最好用的,由于1000字限制,后续更新在22#测试我就决定直接和客户端连起来测试,更直观一点,当然,这得根据实际情况来决定由于秀才做手术去了,所以我这边请了一个游戏公司的AS程序员来配合我开发游戏 更新记录=======2013.2.7=======斗地主已经完成,包括服务端以及…
ASP.NET MVC 3 已经正式发布了,现在估计许多人都在拼命学,我也不能例外,刚刚看到了一篇文章,介绍了三个非常有用的方法:RenderBody,RenderPage和RenderSection,现在自己再总结下. 1. RenderBody 在Razor引擎中没有了"母版页",取而代之的是叫做"布局"的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句: @RenderBody() 其实它的作用和母版页中的服…
RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到 标签里有这样一条语句: @RenderBody() 其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间. 这个方法不需要参数,而且只能出现一次. RenderPage 从名称可以猜出来这个方法是要呈现一个页面…
模板引擎接口 ITemplateEngine 一.后台数据与外部数据 1.处理后台数据 $表达式是个变量表达式,用于处理在  request parameters and the request, session and application 中的变量 ${x} will return a variable x stored into the Thymeleaf context or as a request attribute. ${param.x} will return a reques…
最近参照一些资料实现了一个非常简易的正则表达式引擎,支持基本的正则语法 | + * ()等. 实现思路是最基本的:正则式->AST->NFA->DFA. 以下是具体步骤: 一. 正则式->AST: 这一步没什么好说的,因为正则表达式的语法较为简单,使用编译原理中的递归下降的方法, 可以很容易的构造出一个语法分析器. 二. AST->NFA: 这里的NFA准确的来说应该是ε-NFA,即带有ε边的非确定的有穷状态自动机.ε边是指可以在不接受任何字符的情况下转移的边.其存在的意义是…
master thread的县城优先级别最高.其内部由几个循环(loop)组成:主循环(loop).后台循环(background loop).刷新循环(flush loop).暂停循环(suspend loop).master thread 会根据数-据库运行的状态在loop,background loop.flush loop 和suspend loop 中进行切换.                每秒一次的操作:        1.日志缓冲刷新到磁盘,即使这个事务还没有提交(总是).   …
Jade语法 一.代码 不会被缓冲代码 ul - for(var i=0; i; i++) li Jade Engine 会转换为: <ul> <li>Jade Engine</li> <li>Jade Engine</li> <li>Jade Engine</li> </ul> 被缓冲代码 p= 'Hello Jade' 会转换为: <p>Hello Jade</p> 注意: =默认会…
Jade是一款高性能简洁易懂的模板引擎,Jade是Html的Javascript实现,在服务端(NodeJS)及客户端均有支持. 一.功能 客户端支持  超强的可读性 灵活易用的缩进 块扩展 代码默认经过编码处理以增强安全性 编译及运行时的上下文错误报告 命令行编译支持 HTML5模式 可选的内存缓存 联合动态和静态标记类 利用过滤器解析树的处理 支持 Express 利用each透明的循环objects,arrays甚至不可枚举对象 块注释 不需要标记前缀 AST过滤器  过滤器  ... 二…
该片文章只是抽取drools中java代码实现的一些代码结构,帮助我们理解drools是如何实现rete算法的. 该部分只是抽取ReteooStatefulSession工作过程中的代码架构 利用了多线程设计的一个代理模式(自己起的名字) 利用了23中设计模式中的命令模式 一:模拟drools中ReteooStatefulSession的实现对象StatefulSession package com.nonbankcard.drools.module; /** * * 在当前的设计模式中: *…
现在我们常用的MySQL存储引擎主要是两种:InnoDB and MyISAM. 1.MyISAM 执行效率高 不支持事务 不支持外键 每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为: .frm(存储表定义) MYD(MYData,存储数据) MYI(MYIndex,存储索引) 2.InnoDB(当前mysql的默认 存储引擎) 支持事务:提供具有提交.回滚和崩溃恢复能力的事务安全. 支持外键约束. 支持行级锁. 对比MyISAM存储引擎,InnoDB的写处理效…