读书人

种模板语言的变量替换~简易java实现

发布时间: 2012-12-21 12:03:49 作者: rapoo

类模板语言的变量替换~简易java实现

场景1:数据库存有?xx,yy,zz,aa,bb 等字段, 但是前台根据不同场景需要选择性的展示部分字段,并且需求频繁调整。

?? ? ? ? ? ?这里的需求调整可以有前台展示的调整,也会有后—B字段的调整

?

场景2:自定语法的模版语言实现

?

举例: xx=11&yy=22&zz=33&aa=55&bb=4

?? ? ? ? ?, 定义模板“${/xx}在${yy}时刻,修改${zz}”

?? ? ? ? ?前台输出 ?模板11在22时刻,修改33

?

核心实现:

?

?

template = mapping.getInfo(); //${/xx}在${yy}时刻,修改${zz}//用参数替换模板中的${}变量Matcher m = Pattern.compile("\\$\\{\\w+\\}").matcher(template);StringBuffer sb = new StringBuffer();while (m.find()) {String param = m.group(); //${xx}Object value = paramMap.get( param.substring(2, param.length() - 1));       m.appendReplacement(sb, value==null?"":value.toString());}m.appendTail(sb);

?

源自早期实现的一个日志统计分析报表实现。鉴于项目被打入冷宫,扣出这一段觉得还有点价值的代码留存备份

?

其他:

1. 鉴于上述?xx=11&yy=22的格式,需要对value值进行=和&的转义,输出时反转义。

?

2. 直接在DB里面varchar(1000),用于存储n个未知变量xx=11&yy=22的方式,也是很靠谱的。但是,一些关键需要索引的变量,还是单独字段来存储。

?

3. 读写分离,用这种方式做日志的聚合和过滤查询非常happy,但是需要做MS主从结构, 写需要做成异步。

1 楼 beneo 2011-04-06 说来说去是简化版本的REST么? 2 楼 sw1982 2011-04-07 beneo 写道说来说去是简化版本的REST么?
不懂rest。。。当时做分布式日志收集和处理系统,考虑过nosql和其他方案,结果发现还是DB的查询比较满足需求。

读书人网 >编程

热点推荐