上一篇讲到的是对运行环境的扩展:
这一篇主要的目标是把
***************************************************
执行的脚本:orderService.orderPay(id);
***************************************************
脚本换成 更容易明白的脚本:
***************************************************
执行的脚本: 支付订单(id)
***************************************************
改造部分如下:
为此我们修改下商品的类:
private void initRunner(ExpressRunner runner)
{
if(isInitialRunner == true){
return ;
}
synchronized (runner) {
if(isInitialRunner == true){
return ;
}
try {
//在此可以加入预定义函数
//bean方法
runner.addFunctionOfServiceMethod("支付订单",applicationContext.getBean("orderService"), "orderPay", new Class[] {Long.class}, null);
} catch (Exception e) {
throw new RuntimeException("初始化失败表达式",e);
}
}
isInitialRunner = true;
}
好,大功告成。ExpressRunner此外还提供了非常多的扩展接口,用于脚本语言的抽象,这个也是这个语言的独到之处,精华所在。
请参考: http://code.taobao.org/p/QLExpress/wiki/index/ ,下篇会隆重介绍这些接口的扩展。