- 【网络安全 | 代码审计】JFinal之DenyAccessJsp绕过
秋说
网络安全web安全java代码审计漏洞挖掘
未经许可,不得转载。文章目录前言代码审计推理绕过Tomcat解析JSP总结概念验证阐发前言JFinal是一个基于Java的轻量级MVC框架,用于快速构建Web应用程序。它的设计理念是追求极简、灵活、高效,旨在提高开发效率,减少冗余代码的编写,适合中小型项目以及对性能有较高要求的项目。在较新的JFinal版本中,默认情况下无法直接通过浏览器地址栏输入.jsp文件名来访问对应的JSP文件。也就是说,主
- 极简的Restful框架推荐->Resty
weixin_33881140
jsonjava开发工具
源码链接:Resty开发文档如果你还不是很了解restful,或者认为restful只是一种规范不具有实际意义,推荐一篇osc两年前的文章:RESTfulAPI设计最佳实践和Infoq的一篇极其理论的文章理解本真的REST架构风格虽然有点老,介绍的也很简单,大家权当了解,restful的更多好处,还请google拥有jfinal/activejdbc一样的activerecord的简洁设计,使用更
- shiro 采用redis共享session,出现反序列化错误的排查过程
nightseventhunit
redisjava数据库
这是一个老系统改造的过程,该老系统采用的框架是#jfinal#shiroredis,采用outh2协议的方式,对多个子系统之间进行单点登录,以实现系统之间的session,由于速度方面的影响,现在要改造成多个系统之间共享session,并采用redis集群的方式。说明一下当前项目的整体运行环境,此项目的多个子系统都在同一个域名下,通过上下文不同来区分子系统。以下将记录整个改造过程,采用jfinal
- Jboot系列:代码生成工具generator的使用
简单代码2012
Jboot是一款基于JFinal的开源框架,在JFinal的基础上,增加了微服务概念,号称“SpringCloud之外的另一个选择,已经使用在用户量过亿的商业产品上,有超过1000家公司在使用Jboot做极速开发”,整合了包括RPC、MQ、序列化、限流、shiro、代码生成器等流行组件,今天就来看看其中的代码生成工具。Jboot实际上根据微服务架构扩展了JFinal的generator为BaseM
- 2020-02-16人生节点
拥人自扰之
此时此刻,我觉得是人生的一个节点.有个项目找到了我,工期太短,只有50天.我经验太少,而且需要用Jfinal,这个框架从没用过.我很想接下这个项目,但有以下几点:1.建表需要找个有经验的来,这样有利于后续写代码;2.这个项目开始肯定要讨论需求,也得找人3.50天工期太短,需要再次找人,可我认识的程序员水平跟我差不多4.代码经验与项目经验太少我以为此时此刻是一个人生节点,如果我真能组织好这个项目,是
- 投资20万研发的JFinal项目《旅游线路营销管理系统》准备公开课中
山东小木
18年初上线了一套旅游营销管理系统,目前给几个合作客户内测试用,是基于JFinal研发的一套旅游行业旅游线路批发零售系统(SAAS)版。系统终端:PC后台管理分:总部、线路批发商、旅行社门店、个人代理微信微营销店铺:批发商版、旅行社门店版PC管理系统核心功能:总部:批发商管理、旅行社门店管理、推荐开户申请管理、景点管理、景点图库管理、旅游线路管理、微网站管理、个人信息资料、在线宣传海报制作器等批发
- 谈谈我对 IoC 和 AOP 的理解
AI乔治
@JFinal波总在JFinal4.8发布新闻的评论中给出了下面的表述:IOC本质是为了实现AOP我有点吃惊,没想到Java界的大佬对这两个概念有和我完全不一致的认识.所以写下这篇博客,并借此机会重新学习一下IoC和AOP,确保自己对这两个后端开发非常重要的概念不会有太过偏差的理解1.IoCIoC是InversionofControl的缩写,中文意思是控制反转.维基百科对IoC开宗明义的定位为:I
- 按照模板生成文件,Word 或者 Excel
zhanghe687
wordexcel
需求流程:模板部分如图:Web端技术选用Jfinal功能实现:下面代码是调用--“外部接口”--传参,将前端选中的信息传给后端,另外将后端返回的文件流下载成文件packageibasic.web.com.controller;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.Buff
- JFinalConfig-configRoute(路由配置)
pure_joy
配置方式:me.add("/",IndexController.class);me.add("/routes",RouteController.class");'将“/”映射到IndexController通过配置实现访问http://localhost将访问IndexController.index()方法路由是信息传递到目的地的行为法方法Action:ControllerKey、ActionK
- java web mvc-04-Apache Wicket
老马啸西风
mvcjava前端mvc
拓展阅读SpringWebMVC-00-重学mvcmvc-01-Model-View-Controller概览webmvc-03-JFinalwebmvc-04-ApacheWicketwebmvc-05-JSFJavaServerFaceswebmvc-06-playframeworkintrowebmvc-07-Vaadinwebmvc-08-Grails开源Thejdbcpoolforjav
- java web mvc-02-struts2
老马啸西风
mvcjava前端mvc
拓展阅读SpringWebMVC-00-重学mvcmvc-01-Model-View-Controller概览webmvc-03-JFinalwebmvc-04-ApacheWicketwebmvc-05-JSFJavaServerFaceswebmvc-06-playframeworkintrowebmvc-07-Vaadinwebmvc-08-GrailsStruts2ApacheStruts
- java web mvc-03-JFinal
老马啸西风
mvcjava前端mvc
拓展阅读SpringWebMVC-00-重学mvcmvc-01-Model-View-Controller概览webmvc-03-JFinalwebmvc-04-ApacheWicketwebmvc-05-JSFJavaServerFaceswebmvc-06-playframeworkintrowebmvc-07-Vaadinwebmvc-08-GrailsJFinalJFinal是基于Java
- java web mvc-07-Vaadin 入门介绍
老马啸西风
mvcjava前端mvc
拓展阅读SpringWebMVC-00-重学mvcmvc-01-Model-View-Controller概览webmvc-03-JFinalwebmvc-04-ApacheWicketwebmvc-05-JSFJavaServerFaceswebmvc-06-playframeworkintrowebmvc-07-Vaadinwebmvc-08-Grails开源Thejdbcpoolforjav
- java web mvc-08-Grails 入门介绍
老马啸西风
mvcjava前端mvc
拓展阅读SpringWebMVC-00-重学mvcmvc-01-Model-View-Controller概览webmvc-03-JFinalwebmvc-04-ApacheWicketwebmvc-05-JSFJavaServerFaceswebmvc-06-playframeworkintrowebmvc-07-Vaadinwebmvc-08-Grails开源Thejdbcpoolforjav
- java web mvc-06-play framework intro
老马啸西风
mvcjava前端mvc
拓展阅读SpringWebMVC-00-重学mvcmvc-01-Model-View-Controller概览webmvc-03-JFinalwebmvc-04-ApacheWicketwebmvc-05-JSFJavaServerFaceswebmvc-06-playframeworkintrowebmvc-07-Vaadinwebmvc-08-Grails开源Thejdbcpoolforjav
- java web mvc-05-JSF JavaServer Faces 入门例子
老马啸西风
mvcjava前端mvc
拓展阅读SpringWebMVC-00-重学mvcmvc-01-Model-View-Controller概览webmvc-03-JFinalwebmvc-04-ApacheWicketwebmvc-05-JSFJavaServerFaceswebmvc-06-playframeworkintrowebmvc-07-Vaadinwebmvc-08-Grails开源Thejdbcpoolforjav
- 百度地图瓦片下载工具(仅供学习)
早晨阳光一般暖
javamapjavascriptjava地图瓦片瓦片下载地图下载
这是基于JFinal制作的可直接运行的jar文件执行命令:java-jartilestool-1.0.0-SNAPSHOT.jar启动工具输入网址访问,账密:admin/admin点击“区域下载”框选想要的下载范围,以双击左键结束选择需要下载的瓦片级别点击“任务信息”查看下载任务点击“离线演示”检查下载的瓦片情况执行下载后,会自动生成两个目录,config:保存下载进度信息的,file:保存瓦片的
- JFinal学生信息管理系统
mendianyu
javaintellij-idea开发语言
JFinal学生信息管理系统项目地址:mendianyu/StudentManage:JFinal学生信息管理系统(github.com)环境介绍:IDE:IDEA2021.2.3jdk:1.8maven:3.6.3项目介绍:JFinal框架实现的学生信息管理系统,完成简单的学生信息的增删改查登录页面账号为admin密码为1首页学生列表添加学生查询学生
- 【整理】低代码平台框架
芸尚非
归纳整理java开发语言后端
目录jeesiteJeecg-Boot若依GunsJFinal人人JavaBootJeePlusJavaFastwueasyzhengybgMCMSCloud-Adminjeesite官网:https://www.jeesite.com/Jeecg-Boot官网:http://www.jeecg.com/若依官网:http://www.ruoyi.vip/Guns官网:https://www.st
- 记录使用jFinal之上传文件的坑
加冰块的可乐
最近,接手了一个老程序需要增加新的功能,拿到需求文档之后粗略的看了一下,没有什么难点,就是使用的是自己没用过的jFinal框架,没办法,一点点弄吧。其中,有一个上传视频的功能,我将之前正常的上传文件代码贴了过去,本以为大功告成,可没想到事情却并没有自己想象的顺利。写完代码之后,我拿自己手机里的一个视频进行了测试,结果为成功,但就是没在意视频大小仅为5M多,所以项目一到测试手里,尝试上传了一个50M
- jfinal遇到的一些问题
天天滚雪球
主要问题是jfinal如果要获取json数据的话要在controller里面重写getpara方法
- 锐浪 mysql提供程序,zrlog 2.0 发布,支持 mysql8,多处细节优化
独角兽邹教授
锐浪mysql提供程序
ZrLog是使用Java开发的博客/CMS程序,具有简约,易用,组件化,内存占用低等特点。自带Markdown编辑器,让更多的精力放在写作上,而不是花费大量时间在学习程序的使用上。ZrLog从开始使用JFinal作为主要的框架都快4年了,JFinal的版本1.5用到现在的3.3,然而ZrLog的1.x版本走了4年多,绝大多数的功能都很稳定了,加上使用的一些技术上的调整,比如支持了mysql8,升级
- itext总页数_itext 生成pdf文件添加页眉页脚
千纸鹤Amanda
itext总页数
原文来自:https://www.cnblogs.com/joann/p/5511905.html我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar,其中itextpdf是itext的升级版本,并且itextpdf-5.5.jar以上版本算总页数不需要-1,之前版本必须-1;jfinal.jar只能用2.0版本,用3.0的会报版本过高;希望能帮到有需要的人itextpd
- jfinal微信小程序支付
狠狠亲一口
javajava
packagecn.ktc.jkf.utils;importjava.io.UnsupportedEncodingException;importjava.nio.charset.StandardCharsets;importjava.nio.file.Files;importjava.nio.file.Paths;importjava.security.AlgorithmParameters;i
- JFinalConfig-afterJFinalStart&beforeJFinalStop
pure_joy
beforeJFinalStop:调用时间:在JFinal系统关闭之前回调可以做什么:关闭一些自定义线程清空一些数据,关闭一些服务连接AfterJFinalStart:调用时间:在JFinal启动(init)之后回调可以做什么:系统启动后创建时间调度线程处理调度任务开启数据同步线程,同步一些数据缓存数据初始化Application级别的全局变量位置初始化开启一个webSocket服务
- java查询未提交事务的数据_Jfinal同一事务中已插入的数据记录在事务未提前前查询不到?...
weixin_39822923
java查询未提交事务的数据
@JFinal你好,想跟你请教个问题:使用Jfina事务问题。用法如下booleanresult=Db.tx(newIAtom(){@Overridepublicbooleanrun()throwsSQLException{//指定客户订单数据处理并写入;ApiResultinsertCOrder=saveCustomerOrder(corder);if(insertCOrder.getStatu
- java轻量级流程框架,Java轻量级框架选择
missapen
java轻量级流程框架
目前,打算做一个手机应用的程序,包括android和ios,并都打算使用原生开发。与前端应用交互的后台打算使用Java来开发(本来想用Groovy,但还是对其不熟悉,只好作罢)。用Java就涉及框架选择问题,想选择一个轻量级的,毕竟自己一个人做,所以想用一个开发效率高、很轻、又不失扩展能力的,所以如果没有太好选择的话,就还是使用SSH。后来发现了Springboot、JFinal和Nutz,最后就
- 为什么 Hasor 的设计强调模块?
weixin_34146986
java系统架构数据库
为什么80%的码农都做不了架构师?>>>前段时间公司组织旅游再加上国庆放假,基本上一个月等同于懒散状态也就无心照料Blog,今天算是打起精神继续写这一系列博文把,欢迎大家继续板砖。这篇是承接《轻量级Java开发框架设计》系列Blog文的后续文章。提起Java开发框架,我想在座的一定会在脑海里第一时间跳出SpringJFinal之类的成型产品。所以我也不在多说废话了。在上一篇文章中提到了一些有关这个
- springmvc原理解析
风雨无阻的小陈
java前端开发语言
用了那么久,还不知道原理怎么行?springmvc和jfinal都是一个德性:map维护uri与handler,利用反射调用handler;springmvc关键字:handlerMapping,handler,handlerAdapter,handlerExecutionChain;
- jfinal3.0连接mysql8.0
iarchitect
1、修改pom.xml里的mysql驱动坐标mysqlmysql-connector-java8.0.122、修改DemoConfig.java//配置druid数据库连接池插件DruidPlugindruidPlugin=newDruidPlugin(PropKit.get("jdbcUrl"),PropKit.get("user"),PropKit.get("password").trim()
- Linux的Initrd机制
被触发
linux
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Lin
- maven本地仓库路径修改
bitcarter
maven
默认maven本地仓库路径:C:\Users\Administrator\.m2
修改maven本地仓库路径方法:
1.打开E:\maven\apache-maven-2.2.1\conf\settings.xml
2.找到
 
- XSD和XML中的命名空间
darrenzhu
xmlxsdschemanamespace命名空间
http://www.360doc.com/content/12/0418/10/9437165_204585479.shtml
http://blog.csdn.net/wanghuan203/article/details/9203621
http://blog.csdn.net/wanghuan203/article/details/9204337
http://www.cn
- Java 求素数运算
周凡杨
java算法素数
网络上对求素数之解数不胜数,我在此总结归纳一下,同时对一些编码,加以改进,效率有成倍热提高。
第一种:
原理: 6N(+-)1法 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)
- java 单例模式
g21121
java
想必单例模式大家都不会陌生,有如下两种方式来实现单例模式:
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
- Linux下Mysql源码安装
510888780
mysql
1.假设已经有mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz
(1)创建mysql的安装目录及数据库存放目录
解压缩下载的源码包,目录结构,特殊指定的目录除外:
- 32位和64位操作系统
墙头上一根草
32位和64位操作系统
32位和64位操作系统是指:CPU一次处理数据的能力是32位还是64位。现在市场上的CPU一般都是64位的,但是这些CPU并不是真正意义上的64 位CPU,里面依然保留了大部分32位的技术,只是进行了部分64位的改进。32位和64位的区别还涉及了内存的寻址方面,32位系统的最大寻址空间是2 的32次方= 4294967296(bit)= 4(GB)左右,而64位系统的最大寻址空间的寻址空间则达到了
- 我的spring学习笔记10-轻量级_Spring框架
aijuans
Spring 3
一、问题提问:
→ 请简单介绍一下什么是轻量级?
轻量级(Leightweight)是相对于一些重量级的容器来说的,比如Spring的核心是一个轻量级的容器,Spring的核心包在文件容量上只有不到1M大小,使用Spring核心包所需要的资源也是很少的,您甚至可以在小型设备中使用Spring。
 
- mongodb 环境搭建及简单CURD
antlove
WebInstallcurdNoSQLmongo
一 搭建mongodb环境
1. 在mongo官网下载mongodb
2. 在本地创建目录 "D:\Program Files\mongodb-win32-i386-2.6.4\data\db"
3. 运行mongodb服务 [mongod.exe --dbpath "D:\Program Files\mongodb-win32-i386-2.6.4\data\
- 数据字典和动态视图
百合不是茶
oracle数据字典动态视图系统和对象权限
数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。随着数据库的启动而启动,数据库关闭时数据字典也关闭 数据字典中包含
数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)
数据库为一
- 多线程编程一般规则
bijian1013
javathread多线程java多线程
如果两个工两个以上的线程都修改一个对象,那么把执行修改的方法定义为被同步的,如果对象更新影响到只读方法,那么只读方法也要定义成同步的。
不要滥用同步。如果在一个对象内的不同的方法访问的不是同一个数据,就不要将方法设置为synchronized的。
- 将文件或目录拷贝到另一个Linux系统的命令scp
bijian1013
linuxunixscp
一.功能说明 scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下: scp 远程用户名@IP地址:文件的绝对路径
- 【持久化框架MyBatis3五】MyBatis3一对多关联查询
bit1129
Mybatis3
以教员和课程为例介绍一对多关联关系,在这里认为一个教员可以叫多门课程,而一门课程只有1个教员教,这种关系在实际中不太常见,通过教员和课程是多对多的关系。
示例数据:
地址表:
CREATE TABLE ADDRESSES
(
ADDR_ID INT(11) NOT NULL AUTO_INCREMENT,
STREET VAR
- cookie状态判断引发的查找问题
bitcarter
formcgi
先说一下我们的业务背景:
1.前台将图片和文本通过form表单提交到后台,图片我们都做了base64的编码,并且前台图片进行了压缩
2.form中action是一个cgi服务
3.后台cgi服务同时供PC,H5,APP
4.后台cgi中调用公共的cookie状态判断方法(公共的,大家都用,几年了没有问题)
问题:(折腾两天。。。。)
1.PC端cgi服务正常调用,cookie判断没
- 通过Nginx,Tomcat访问日志(access log)记录请求耗时
ronin47
一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间
nginx.conf使用配置方式:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_r
- java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
bylijinnan
java
public class ProbabilityOfDice {
/**
* Q67 n个骰子的点数
* 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
* 在以下求解过程中,我们把骰子看作是有序的。
* 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况
*/
private stati
- 看别人的博客,觉得心情很好
Cb123456
博客心情
以为写博客,就是总结,就和日记一样吧,同时也在督促自己。今天看了好长时间博客:
职业规划:
http://www.iteye.com/blogs/subjects/zhiyeguihua
android学习:
1.http://byandby.i
- [JWFD开源工作流]尝试用原生代码引擎实现循环反馈拓扑分析
comsci
工作流
我们已经不满足于仅仅跳跃一次,通过对引擎的升级,今天我测试了一下循环反馈模式,大概跑了200圈,引擎报一个溢出错误
在一个流程图的结束节点中嵌入一段方程,每次引擎运行到这个节点的时候,通过实时编译器GM模块,计算这个方程,计算结果与预设值进行比较,符合条件则跳跃到开始节点,继续新一轮拓扑分析,直到遇到
- JS常用的事件及方法
cwqcwqmax9
js
事件 描述
onactivate 当对象设置为活动元素时触发。
onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发。
onbeforeactivate 对象要被设置为当前元素前立即触发。
onbeforecut 当选中区从文档中删除之前在源对象触发。
onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即
- 正则表达式验证日期格式
dashuaifu
正则表达式IT其它java其它
正则表达式验证日期格式
function isDate(d){
var v = d.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/i);
if(!v) {
this.focus();
return false;
}
}
<input value="2000-8-8" onblu
- Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证
dcj3sjt126com
yii
public array rules () {return} array 要调用 validate() 时应用的有效性规则。 返回属性的有效性规则。声明验证规则,应重写此方法。 每个规则是数组具有以下结构:array('attribute list', 'validator name', 'on'=>'scenario name', ...validation
- UITextAttributeTextColor = deprecated in iOS 7.0
dcj3sjt126com
ios
In this lesson we used the key "UITextAttributeTextColor" to change the color of the UINavigationBar appearance to white. This prompts a warning "first deprecated in iOS 7.0."
Ins
- 判断一个数是质数的几种方法
EmmaZhao
Mathpython
质数也叫素数,是只能被1和它本身整除的正整数,最小的质数是2,目前发现的最大的质数是p=2^57885161-1【注1】。
判断一个数是质数的最简单的方法如下:
def isPrime1(n):
for i in range(2, n):
if n % i == 0:
return False
return True
但是在上面的方法中有一些冗余的计算,所以
- SpringSecurity工作原理小解读
坏我一锅粥
SpringSecurity
SecurityContextPersistenceFilter
ConcurrentSessionFilter
WebAsyncManagerIntegrationFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
Use
- JS实现自适应宽度的Tag切换
ini
JavaScripthtmlWebcsshtml5
效果体验:http://hovertree.com/texiao/js/3.htm
该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页。
HTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
- Hbase Rest API : 数据查询
kane_xie
RESThbase
hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。
启动命令:./bin/hbase rest s
- JQuery实现鼠标拖动元素移动位置(源码+注释)
明子健
jqueryjs源码拖动鼠标
欢迎讨论指正!
print.html代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>发票打印</title>
&l
- Postgresql 连表更新字段语法 update
qifeifei
PostgreSQL
下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下:
UPDATE tops_visa.visa_order
SET op_audit_abort_pass_date = now()
FROM
tops_visa.visa_order as t1
INNER JOIN tops_visa.visa_visitor as t2
ON t1.
- 将redis,memcache结合使用的方案?
tcrct
rediscache
公司架构上使用了阿里云的服务,由于阿里的kvstore收费相当高,打算自建,自建后就需要自己维护,所以就有了一个想法,针对kvstore(redis)及ocs(memcache)的特点,想自己开发一个cache层,将需要用到list,set,map等redis方法的继续使用redis来完成,将整条记录放在memcache下,即findbyid,save等时就memcache,其它就对应使用redi
- 开发中遇到的诡异的bug
wudixiaotie
bug
今天我们服务器组遇到个问题:
我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key