概述
场景1:数据库存有 xx,yy,zz,aa,bb 等字段, 但是前台根据不同场景需要选择性的展示部分字段,并且需求频繁调整。
这里的需求调整可以有前台展示的调整,也会有后台DB字段的调整
场景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主从结构, 写需要做成异步。
最后
以上就是魁梧母鸡为你收集整理的类模板语言的变量替换~简易java实现的全部内容,希望文章能够帮你解决类模板语言的变量替换~简易java实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复