场景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编程环境中,替换Word文档中的变量是一项常见的需求,特别是在自动化文档生成或者模板处理的场景中。本知识点将深入探讨如何使用Java实现这一功能,主要涉及的库是Apache POI,这是一个广泛使用的开源库,用于...
Java字符串中${}或者{}等占位符替换工具类 Java字符串中${}或者{}等占位符替换工具类是一个功能强大且实用的工具类,它可以将Java字符串中的占位符依次替换为指定的值。该工具类的主要功能是实现占位符的替换,即将...
### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...
Java 实现简易Xshell终端是基于Java语言与JSch库结合的一种技术,它允许开发者创建一个功能类似于Xshell的命令行界面,通过SSH协议连接到远程服务器进行操作。JSch是一个纯Java实现的SSH2库,它提供了对SSH2协议的...
接下来,我们将使用Java-POI库读取这个Word模板,并用实际数据替换模板中的变量。 ##### 1. 导入POI库 首先,在项目中导入Apache POI库。如果使用Maven,可以在`pom.xml`文件中添加以下依赖: ```xml <groupId>...
3. 替换模板内容:调用poi-tl的`DocumentEngine`或`TemplateEngine`,传入数据模型,将模板中的占位符替换为实际值。 4. 保存生成的文档:将替换后的内容保存为新的Word文件。 例如,如果模板中有一行`亲爱的 ${...
Java作为一种强大的编程语言,提供了多种库和工具来处理这类任务,如Apache POI和OpenOffice API等。本实例将探讨如何使用Java代码实现填充Word模板并生成Word合同。 首先,我们需要理解Apache POI库。Apache POI是...
在Java中实现Oracle变量的绑定方法,主要是为了优化SQL语句的执行效率,减少数据库解析负担,提升系统性能。Oracle数据库在处理SQL语句时,会先进行解析,然后将解析后的SQL语句存储在共享池(Shared Pool)中。如果...
在Java编程语言中,常量和变量是两个基础且重要的概念。它们是程序中存储数据的容器,理解它们的性质和用法对于编写高效的代码至关重要。 ### 常量 常量是固定不变的值,一旦被定义就不能再更改。在Java中,我们...
【简易电子词典(Java)】是一个基于Java编程语言实现的简单词汇查询工具,它允许用户在命令行界面中执行单词查询和添加等基本操作。这个项目为初学者提供了了解和实践面向对象编程、文件处理以及用户交互设计的平台...
Java编程语言中有三种主要的变量类型:成员变量(也称为实例变量)、类变量(也称为静态变量)和局部变量。理解这些变量之间的区别是学习Java基础的重要部分,这对于编写高效、可维护的代码至关重要。 1. 成员变量...
总之,Apache POI为Java开发者提供了一种强大且灵活的方式来操作Word文档,包括基于模板的生成、文本替换、循环插入列表以及图片插入等功能。通过熟练掌握这些技术,你可以创建出高度自定义的动态Word报表,满足各种...
(4)根据下面的要求实现圆类Circle。 ① 圆类Circle的成员变量:radius表示圆的半径。 ② 圆类Circle的方法成员: Circle():构造方法,将半径置0 Circle(double r):构造方法,创建Circle对象时将半径...
在本文中,我们将深入探讨如何创建一个简易的Java计算器程序,该程序具备基本的数学运算功能,如加、减、乘、除,还包括求平方根、取倒数、求余数以及清除操作。这个计算器的设计旨在提供用户友好的界面和简单易用的...
Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 在 Java 语言中,每个变量必须先声明,然后才能使用。声明变量时必须指定该变量的数据类型。...
这个项目名为"Java实现ping功能",它利用Java编程语言,结合Spring Boot、Thymeleaf和Maven等技术,实现了类似操作系统内置ping命令的功能,并且增加了端口检测的特性。下面我们将详细探讨这一项目中的关键知识点。 ...
学习和理解类方法和类变量是Java开发的基础,这有助于我们更好地设计和实现面向对象的程序。在实际编程中,要根据需求合理选择使用实例方法还是类方法,以及何时应该使用类变量来存储数据。同时,合理利用Java的访问...
在使用java语言编程过程中,除了下载jdk外,设置环境变量显得尤为烦人,使用bat文件可省去在属性中的设置麻烦
在设计类时,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。final类的成员方法没有机会被覆盖,默认情况下类都是default的。 例如,下面是一个Person类的...