结合 spring ,使用QLExpress做一个淘宝的场景模型,对于场景的描述可以参照这个demo
2012-05-13 01:07
405 查看
结合 spring ,使用QLExpress做一个淘宝的场景模型,对于场景的描述可以参照这个demo。
下载最新的QlExpresss代码 http://code.taobao.org/svn/QLExpress/trunk
运行下 com.ql.util.express.test.demo.TestQlExpress 的单元测试,即可看到效果。
有兴趣的可以运行下看看效果,把业务规则描述为一段中文文本恐怕是很多产品经理的梦想吧,QLexpress希望可以助你一臂之力。
下载最新的QlExpresss代码 http://code.taobao.org/svn/QLExpress/trunk
运行下 com.ql.util.express.test.demo.TestQlExpress 的单元测试,即可看到效果。
/** * 使用qlExpressUtil扩展了QlExpressRunner的expressContext参数, * 使脚本中可以直接调用spring中的bean * * 场景业务逻辑如下: * ****************************************************************** * * 用户qlExpress注册一个账号 * 用户qlExpress开了个淘宝店 * 通过自己的苦心经营,星级不断升高,qlExpress不断的期望着能够地店铺升级为商城用户 * 终于有一天他成功了,成功升级为商城用户。 * * ****************************************************************** * @throws Exception */ @org.junit.Test public void testScript() throws Exception{ Map<String, Object> context = new HashMap<String, Object>(); context.put("nick", "qlExpress"); qlExpressUtil.execute("用户A = bizLogicBean.signUser(nick);" + "bizLogicBean.openShop(用户A );" + "for(;; bizLogicBean.isShopOpening(用户A ) && !bizLogicBean.upgradeShop(用户A )){bizLogicBean.addScore(用户A );}", context); } /** * * 使用预先定义的函数,脚本即逻辑: * ****************************************************************** * * "用户A = 注册用户(nick);" + * "开店(用户A);" + * "for(;;店铺营业中(用户A) && !店铺升级(用户A)){星级自增(用户A);} * * ****************************************************************** * @throws Exception */ @org.junit.Test public void testDeclareMethodScript() throws Exception{ Map<String, Object> context = new HashMap<String, Object>(); context.put("nick", "qlExpress"); qlExpressUtil.execute("用户A = 注册用户(nick);" + "开店(用户A);" + "for(;;店铺营业中(用户A) && !店铺升级(用户A)){星级自增(用户A);}", context); }
有兴趣的可以运行下看看效果,把业务规则描述为一段中文文本恐怕是很多产品经理的梦想吧,QLexpress希望可以助你一臂之力。
相关文章推荐
- facade 提供一个接口,通过这个接口,可以使一个子系统更容易使用。
- SolarWinds Orion Network Performance Monitor --看我一个同事用这个东东,特此记录一下,可以统计服务器的cpu使用情况。
- 例题:把一个超市购物的题做成函数。这个题做成函数没有必要,但可以了解输入参数,输出参数,返回值,函数体,还有结构体,ArryList集合,for循环算结果,以及集合里 .count的使用
- 使用vue路由做出一个可以切换的demo
- 一个java3d程序,作为熟悉3d技术的基础(可以使用鼠标对场景内的3d对象进行操作)
- 对于同一数据库中的同一个表,即可以新建视图模型,也可以新建模型,没有影响
- 给出一个2D板和一个单词,找出这个单词是否存在于网格中。 该单词可以由顺序相邻单元的字母构成,其中“相邻”单元是水平或垂直相邻的单元。 相同的字母单元可能不会被多次使用。
- 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
- 自制消消乐 使用学习vue.js 和 es6 class语法 就写了一个这个游戏 源码 可以去 github 上下载
- 一篇总结的很好的Spring data jpa 文章,里面包含多种查询方式,可以结合api使用
- 《c primer pius》第十章第6题,编写一个程序,初始化一个二维double数组,并利用练习2中的任一函数来把这个数组复制到另一个二维数组(因为二维数组是数组的数组,所以可以使用处理一维数组的
- 动态DNS——本质上是IP变化,将任意变换的IP地址绑定给一个固定的二级域名。不管这个线路的IP地址怎样变化,因特网用户还是可以使用这个固定的域名 这样看的话,p2p可以用哇
- 在spring 中如果使用new创建一个对象时 这个对象将不在受spring管理器管理
- 如题,既然直接对一个实例发送方法名就可以调用这个方法,那为什么还要使用performSelector:去调呢?两者u有啥区别
- spring中提供了一个Filter过滤器,我们可以直接拿来使用
- 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
- 领域事件与Netty结合的一个使用场景与设计
- 16、osg中使用Imposter设置一个视矩,超过这个视距模型会变为一张动态图
- git在一个分支上修改了代码但是不想commit到本地git库,需要切换一个分支去修改代码,这个时候也可以使用git stash
- android 使用 websocket 进行长链接的一个简单的 demo,可以用来收发消息或别的操作,里面用到了 autobahn 的 jar 包