`
sw1982
  • 浏览: 508549 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

阅读更多

场景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主从结构, 写需要做成异步。

分享到:
评论
2 楼 sw1982 2011-04-07  
beneo 写道
说来说去是简化版本的REST么?

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

相关推荐

    java字符串中${}或者{}等的占位符替换工具类

    Java字符串中${}或者{}等占位符替换工具类 Java字符串中${}或者{}等占位符替换工具类是一个功能强大且实用的工具类,它可以将Java字符串中的占位符依次替换为指定的值。该工具类的主要功能是实现占位符的替换,即将...

    Java模板语言 Beetl

    Java模板语言Beetl是一种强大的、高性能的Java模板引擎,专为简化Web开发中的视图层处理而设计。它的设计理念是让开发者能够更自然地写出符合语义的模板代码,提高开发效率,同时保持良好的可读性和可维护性。Beetl...

    java实现模板下载功能

    ### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...

    poi-tl引擎实现world模板内容替换(支持docx)

    3. 替换模板内容:调用poi-tl的`DocumentEngine`或`TemplateEngine`,传入数据模型,将模板中的占位符替换为实际值。 4. 保存生成的文档:将替换后的内容保存为新的Word文件。 例如,如果模板中有一行`亲爱的 ${...

    java实现的简易xshell终端

    Java 实现简易Xshell终端是基于Java语言与JSch库结合的一种技术,它允许开发者创建一个功能类似于Xshell的命令行界面,通过SSH协议连接到远程服务器进行操作。JSch是一个纯Java实现的SSH2库,它提供了对SSH2协议的...

    url变量替换

    url变量替换

    word文档模板-使用poi技术替换文档中的变量

    接下来,我们将使用Java-POI库读取这个Word模板,并用实际数据替换模板中的变量。 ##### 1. 导入POI库 首先,在项目中导入Apache POI库。如果使用Maven,可以在`pom.xml`文件中添加以下依赖: ```xml <groupId>...

    Java 环境变量配置

    `CLASSPATH`环境变量用于指定Java类文件的搜索路径。如果未正确配置,可能会导致编译器无法找到类文件而报错。 **配置步骤:** 1. **确定CLASSPATH的值:** - 在本例中,`CLASSPATH`的值为`.;%JAVA_HOME%\lib;%...

    java代码实现填充word模板生成word合同的实例

    Java作为一种强大的编程语言,提供了多种库和工具来处理这类任务,如Apache POI和OpenOffice API等。本实例将探讨如何使用Java代码实现填充Word模板并生成Word合同。 首先,我们需要理解Apache POI库。Apache POI是...

    一个简易的编译器 能够解析简易的java语言

    《简易Java语言编译器详解》 在编程领域,编译器扮演着至关重要的角色,它将人类可读的高级语言转化为计算机可执行的机器语言。本篇文章将深入探讨一个特别针对简易Java语言的编译器,这是一款适用于课程设计和毕业...

    map中的值替换掉字符串中的变量(含运算)

    在Java编程中,经常遇到需要将预定义的字符串模板中的变量替换为实际值的情况。这在配置文件解析、动态SQL生成等场景中尤为常见。本文将详细介绍如何利用Java标准库以及第三方库实现这一功能,并通过一个具体的示例...

    java环境变量配置 JDK环境变量

    ### Java环境变量配置详解 #### 一、Java环境变量配置的重要性 在开发Java应用程序之前,首先需要正确地配置Java环境变量。这是因为环境变量是操作系统用来识别和定位Java开发工具的位置的关键参数。通过设置适当的...

    简易电子词典(java)

    【简易电子词典(Java)】是一个基于Java编程语言实现的简单词汇查询工具,它允许用户在命令行界面中执行单词查询和添加等基本操作。这个项目为初学者提供了了解和实践面向对象编程、文件处理以及用户交互设计的平台...

    Java成员变量类变量局部变量的区别共5页.pdf.zip

    Java编程语言中有三种主要的变量类型:成员变量(也称为实例变量)、类变量(也称为静态变量)和局部变量。理解这些变量之间的区别是学习Java基础的重要部分,这对于编写高效、可维护的代码至关重要。 1. 成员变量...

    Apache poi 根据word模板生成word报表 替换 循环列表 图片

    总之,Apache POI为Java开发者提供了一种强大且灵活的方式来操作Word文档,包括基于模板的生成、文本替换、循环插入列表以及图片插入等功能。通过熟练掌握这些技术,你可以创建出高度自定义的动态Word报表,满足各种...

    Java变量初始化

    Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 在 Java 语言中,每个变量必须先声明,然后才能使用。声明变量时必须指定该变量的数据类型。...

    23.java变量.zip

    23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23.java变量.zip23....

    JAVA多线程并发操作全局变量

    NULL 博文链接:https://toknowme.iteye.com/blog/2212529

    Java实现ping功能

    这个项目名为"Java实现ping功能",它利用Java编程语言,结合Spring Boot、Thymeleaf和Maven等技术,实现了类似操作系统内置ping命令的功能,并且增加了端口检测的特性。下面我们将详细探讨这一项目中的关键知识点。 ...

    SHELL JAVA环境变量配置脚本

    linux初学者写的小脚本,用来配置JAVA环境变量,纯属练手,不喜勿喷

Global site tag (gtag.js) - Google Analytics