自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 qlExpress实践手册-常用语法介绍

QlExpress脚本语言解析工具诞生于2010年,是阿里巴巴 玄难 根据当时 涉及资金结算 的业务需要开始编写。因为其良好的扩展性和过硬的稳定性,不断的被阿里的众多团队采用,也不断的增加功能、优化性能,到2011年升级为2.0版本。2012年发布到taocode作为阿里的开源产品之一,在开源社区受到很多好的意见和反馈。2013年升级到3.0版本,内部重构了语法定义和匹配的算法,代码

2017-10-26 11:23:49 23477 5

原创 qlExpress实践手册-spring的融合

中国绝大部分java应用系统都使用spring作为基础系统架构的一部分。 对于qlExpress脚本引擎来说,能否调用spring bean的方法?怎么调用?是一个非常常见的问题。 以下通过案例来说明。

2017-10-24 11:23:10 7663 1

原创 规则引擎概述

我是阿里巴巴做规则引擎相关工作多年的java工程师一枚,本文只讲一些个人对“规则引擎”的看法,欢迎大家一起探讨。1、“规则引擎”的实际用途和价值2、“规则引擎”的一般实现方式3、“规则引擎”发展的一些坎坷

2017-08-13 13:09:26 44751 7

QLExpress脚本语言技术讲解(9)-------方法绑定

场景介绍:写道其实我想表达的是能不能通过“阶梯1: 交易额5000万以内取55%”这一句话,直接得到一个这样的表达式: if(p1<=50000000) return "55%";我们这边希望做到的业务场景是:具体规则通过市场人员或者财务人员通过自然语言描述(约定特定的关键字,比如"交易额","以内",“取”),如上面的“阶梯1: 交易额5000万以内取55%”程序解析这些自然语言...

2014-11-12 16:08:26 2372

QLExpress脚本语言技术讲解(9)-------高精度计算

hujw 的来信 您好,我在使用QLExpress的时候,发现运算结果精度不符合预期结果。期盼得到您的解答。先列下具体问题: 运行表达式:a=(b-c)/(d-c) 其中: b=new BigDecimal("0.1694915254237288");c=new BigDecimal("0.15384615384615385");d=new Bi...

2014-06-06 19:09:02 2437

QLExpress脚本语言技术讲解(8)-------逻辑的处理

(注:相关代码请参考 com.ql.util.express.test.logic.ShortCircuitLogicTest类,QLExpress 源代码下载地址:http://code.taobao.org/p/QLExpress/src/ ) 昨天收到一份厂外人士的邮件,需求如下:天樵,您好! 网上看到你BLOG中开源出的QLExpress表达式,...

2014-05-30 14:07:42 1518 2

原创 QLExpress脚本语言技术讲解(7)-------QlExpress的对象缓存优化

(注:相关代码请参考 com.ql.util.express.instruction.OperateDataCacheManager类, QLExpress 源代码下载地址:http://code.taobao.org/p/QLExpress/src/ )  几乎所有的动态脚本语言在运行期都需要频繁的创建对象,并且强烈依赖语言的底层垃圾回收(java中称...

2012-07-29 21:09:26 1574

原创 QLExpress脚本语言技术讲解(6)-------QLExpress的缓存管理

(注:相关代码请参考 com.ql.util.express.test.ExpressCacheTest类, QLExpress 源代码下载地址:http://code.taobao.org/p/QLExpress/src/ )1、QLExpress的缓存带来的好处: 自带了一个本地缓存,用于缓存指令集,已减少编译阶段的时间消耗。  @Test public void te...

2012-06-08 17:45:35 730

QLExpress脚本语言技术讲解(5)------对脚本语言的进一步优化,变成中文的脚本语言 ...

 上一篇讲到的是对运行环境的扩展: 这一篇主要的目标是把***************************************************执行的脚本:orderService.orderPay(id);***************************************************脚本换成 更容易明白的脚本:****...

2012-06-07 16:17:07 536

QLExpress脚本语言技术讲解(4)------扩展QLExpress来管理spring的bean,写出简单的脚本语言框架...

类似淘宝、腾讯之类的复杂业务系统一般都采用分布式的系统集群结构,每一个独立的子系统负责一块业务,这样做主要是为了使业务更加分离,专人负责专人的应用系统,同时降低系统的耦合性,增强系统的安全和稳定性。同时分布式的数据库和应用结构,使很多复杂的业务规则也变成了一个特定的系统调用。比如“支付订单(12781)”,需要调用一个交易中心的支付订单API。 本章主要介绍的是如何通过扩展QlEx...

2012-06-07 16:15:44 892

QLExpress脚本语言技术讲解(3) -----QL的性能描述

 由上篇得知 整个qlexpress的执行过程: (1)单词分解(2)单词类型分析(3)语法分析(4)生成运行期指令集合(5)执行生成的指令集合。其中前4个过程涉及语法的匹配运算等非常耗时,要做到使qlExpress的性能最大化,你可以做以下两方面的优化: 1、ExpressRunner设置成singleton(结合spring是非常容易做到的)...

2012-06-07 16:14:42 1090

QLExpress脚本语言技术讲解(2) -----QL的基本执行过程

@org.junit.Test public void testDemo() throws Exception{ String express = "10 * 10 + 1 + 2 * 3 + 5 * 2"; ExpressRunner runner = new ExpressRunner(); Object r = runner.execute(express,null,...

2012-06-07 16:12:19 1357

QLExpress脚本语言技术讲解(1)

QLExpress 实现了一个功能丰富、扩展性极高的编译执行器,实现了一个完整的词法分析,语法分析,语义分析,编译指令,指令执行的过程。在动态脚本满天飞的年代,有很多相对成熟的脚本解析工具,groovy,ruby,python... ...,淘宝开源工具 qlexpress作为一个淘宝开源的项目,也有它很多独特之处。QLExpress 是一个开放的脚本处理工具,它开放了很多api扩展定义接...

2012-06-07 16:10:36 930

原创 QLExpress脚本语言技术讲解(6)-------QLExpress的缓存管理

(注:相关代码请参考 com.ql.util.express.test.ExpressCacheTest类,QLExpress源代码下载地址:http://code.taobao.org/p/QLExpress/src/ )1、QLExpress的缓存带来的好处:自带了一个本地缓存,用于缓存指令集,已减少编译阶段的时间消耗。 @Test public void tes

2012-05-28 22:55:02 4878

原创 结合 spring ,使用QLExpress做一个淘宝的场景模型,对于场景的描述可以参照这个demo

结合 spring ,使用QLExpress做一个淘宝的场景模型,对于场景的描述可以参照这个demo。下载最新的QlExpresss代码  http://code.taobao.org/svn/QLExpress/trunk运行下 com.ql.util.express.test.demo.TestQlExpress 的单元测试,即可看到效果。  /** * 使用qlExpr

2012-05-13 01:07:02 6428 1

原创 QLExpress脚本语言技术讲解(5)------对脚本语言的进一步优化,变成中文的脚本语言

上一篇讲到的是对运行环境的扩展: 这一篇主要的目标是把***************************************************执行的脚本:orderService.orderPay(id);***************************************************脚本换成 更容易明白的脚本:*********

2012-04-18 10:12:22 5744 1

原创 QLExpress脚本语言技术讲解(4)------扩展QLExpress来管理spring的bean,写出简单的脚本语言框架

类似淘宝、腾讯之类的复杂业务系统一般都采用分布式的系统集群结构,每一个独立的子系统负责一块业务,这样做主要是为了使业务更加分离,专人负责专人的应用系统,同时降低系统的耦合性,增强系统的安全和稳定性。同时分布式的数据库和应用结构,使很多复杂的业务规则也变成了一个特定的系统调用。比如“支付订单(12781)”,需要调用一个交易中心的支付订单API。本章主要介绍的是如何通过扩展QlExpre

2012-04-17 12:00:04 12509

原创 对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀(3)------优化方案

一些优化和改进增强apache的beanUtils的拷贝属性,注册一些新的类型转换public class BeanUtilsEx extends BeanUtils{  public static void copyProperties(Object dest, Object orig)  {    try    {      Be

2012-03-06 20:43:41 3674 2

原创 对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀(2)------缺陷预防

你不知道这些陷阱吧?陷阱条件Apache- PropertyUtilsApache- BeanUtilsSpring-  BeanUtilsCglib-BeanCopier是否可以扩展useConvete功能NOYesYesYes,但比较难用

2012-03-06 20:42:34 3409

原创 对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀(1)------功能简介

对象拷贝的应用现状简介:业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最安全的做法,但是当数据对象的属性字段数量超过程序员的容忍的程度,代码因此变得臃肿不堪,使用一些方便的对象拷贝工具类将是很好的选择。目前流行的较为公用认可的工具类:Apache的两个版本:(反射机制)org.apache.commons.beanutils.PropertyUtils.c

2012-03-06 20:39:59 7509

转载 揭开正则表达式的神秘面纱(2)

2. 正则表达式中的一些高级规则2.1 匹配次数中的贪婪与非贪婪    在使用修饰匹配次数的特殊符号时,有几种表示方法可以使同一个表达式能够匹配不同的次数,比如:"{m,n}", "{m,}", "?", "*", "+",具体匹配的次数随被匹配的字符串而定。这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。比如,针对文本 "dxxxdxxxd",举例如下:

2012-02-27 17:13:07 1061

转载 揭开正则表达式的神秘面纱

1. 正则表达式规则1.1 普通字符    字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。    举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程语言

2012-02-27 17:10:48 1484

原创 QLExpress脚本语言技术讲解(3) -----QL的性能描述

由上篇得知 整个qlexpress的执行过程:(1)单词分解(2)单词类型分析(3)语法分析(4)生成运行期指令集合(5)执行生成的指令集合。其中前4个过程涉及语法的匹配运算等非常耗时,要做到使qlExpress的性能最大化,你可以做以下两方面的优化:1、ExpressRunner设置成singleton(结合spring是非常容易做到的)

2012-02-20 22:52:49 5331

原创 QLExpress脚本语言技术讲解(2) -----QL的基本执行过程

@org.junit.Test public void testDemo() throws Exception{ String express = "10 * 10 + 1 + 2 * 3 + 5 * 2"; ExpressRunner runner = new ExpressRunner(); Object r = runner.execute(express,null, null

2012-02-20 22:33:31 8487

原创 QLExpress脚本语言技术讲解(1)

QLExpress 实现了一个功能丰富、扩展性极高的编译执行器,实现了一个完整的词法分析,语法分析,语义分析,编译指令,指令执行的过程。在动态脚本满天飞的年代,有很多相对成熟的脚本解析工具,groovy,ruby,python... ...,淘宝开源工具 qlexpress作为一个淘宝开源的项目,也有它很多独特之处。QLExpress 是一个开放的脚本处理工具,它开放了很多api扩展定义接

2012-02-20 20:26:53 8244

深入理解Java虚拟机 JVM高级特性与最佳实践(高清全集)

从电子出版商购买,货真价实,非试读前三章的版本。 深入理解Java虚拟机 JVM高级特性与最佳实践(高清pdf扫描全集)。

2012-08-20

easyExplorer eclipse plugin

国内的 http://sourceforge.net/projects/easystruts/ 是连接不上的,所以。。。。 把这个jar包下载下来,然后扔到eclipse的plugin目录,重启下即可。

2012-04-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除