自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(344)
  • 资源 (59)
  • 收藏
  • 关注

原创 JAVA AES加密工具类

【代码】JAVA AES加密工具类。

2024-04-09 20:20:42 185

原创 一次丢失源代码只有jar的反编译过程

2、上传反编译工具到Linux,上传需要反编译的jar到指定路径;5、替换大部分公用逻辑,根据实际情况替换。4、生成代码后,放入项目中。

2024-04-02 19:24:50 159

原创 Trivy漏洞扫描工具安装

第一次扫描,需要安装数据库。

2024-02-18 17:22:31 516

原创 一次项目漏洞升级的过程(JDK8升级到JDK17)

1、spring-web需要升级到6.x,spring-boot需要升级到3.x,JDK需要升级到JDK17(Oracle JDK17三年免费授权从2024年9月,所以需要使用OpenJDK17),Java EE转Jakarta;因为使用了OpenJdk17,cglib代理在2019年8月停止更新,OpenJDK17是2019年9月出来的,也不支持需要修改;第二步、扫描后的漏洞存在镜像漏洞,中间件漏洞和代码jar包漏洞;第三步、区分对外和不对外的服务,先更新对外服务;第二步、更新IDEA的JDK配置。

2024-01-19 11:43:43 588

原创 一次JAVA调用C++的.so库的过程

【代码】一次JAVA调用C++的.so库的过程。

2023-12-29 15:10:24 498

原创 对于并发修改同一条数据的处理方案

(一)、直接拼接唯一的条件作为字符串,判断两条数据是一条数据的条件,把它放入常量池(intern方法),之后对常量池字符串加锁,保证同一条数据只会一个一个修改;批量消费Kafka数据,一个批次针对同一条数据做新增和修改操作,当前一条数据还未更新完成,后一条数据也同步修改,数据就存在异常;(一)、使用Redis中间件加锁,同一条数据先阻塞,但这种方式的Redis锁也需要加在判断两条数据属于同一条数据的查询条件上;(二)、发送消息到同一个topic,使用线程池数组队列阻塞同一条修改的数据。

2023-12-06 17:35:09 254

原创 一次解决IDEA编译运行不报错,但代码报红线,提示工具也出现不了代码的问题

猜测意思是这个文件使用Kotlin编译的文件,当前IDE用的Kotlin编译器版本是1.4.0,但这个文件编译器用的是1.6.0,说明Kotlin编译器版本太低了;项目引用了okhttp3.5.0版本,之后需要升级到okhttp4.10.0,为了提高性能;/ 此类文件是使用不同版本的 Kotlin 编译器编译的,无法反编译。解决,全盘搜索,已经能在Classes里面找到了。但可以正常编译,运行,说明JDK是支持的;点开文件,没有任何类型,只有一句提示。全盘搜索,找到对应的类;升级Kotlin编译器。

2023-09-06 09:51:02 2830

转载 Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能

上边是 spring-boot-actuator 集成了 Micrometer 来提供的默认监控项,覆盖 JVM 各个层间的监控,配合 Grafana Dashboard 模板基本可以满足我们日常对 Java 应用的监控。当然,它也支持自定义监控指标,实现各个方面的监控,例如统计访问某一个 API 接口的请求数,统计实时在线人数、统计实时接口响应时间等功能,而这些都可以通过使用上边的四种计量器来实现。接下来,来演示下如何自定义监控指标并展示到 Grafana 上。

2023-09-01 15:02:08 2185

转载 FLV封装格式介绍及解析

FLV(Flash Video)是Adobe公司推出的一种流媒体格式,由于其封装后的音视频文件体积小、封装简单等特点,非常适合于互联网上使用。目前主流的视频网站基本都支持FLV。采用FLV格式封装的文件后缀为.flv。FLV封装格式是由一个文件头(flie header)和 文件体(file Body)组成。其中,FLV body由一对对的(Previous Tag Size字段 + tag)组成。Previous Tag Size字段排列在Tag之前,占用4个字节。

2023-08-03 15:50:04 123

原创 接口优化策略

用于定位问题所在。

2023-07-20 15:56:36 97

原创 JAVA位运算代码

10 + (-11) = 1111 0110 + 1111 0101 = 1(舍弃) 1110 1011 符号位从 1->1 不溢出。-101 + (-10) = 1001 1011 + 1111 0110 = 1(舍弃) 1001 0001 符号位从 1->1 不溢出。-101+(-102) = 1001 1011 + 1001 1010 = 1(舍弃) 0011 0101 符号位从 1->0 溢出。同样可以推测出,如果两个正数的补码(原码)相加,如果符号位变为1,则表示计算结果溢出,需要进位;

2023-07-20 14:54:56 125

原创 对象的回收算法

优点:容易理解缺点:不能回收 a.value=b;b.value=a这种循环应用。

2023-07-17 13:49:31 235

原创 怎么做到Kafka顺序读写

SQL语句需要顺序执行,因为不顺序执行,比如先新增了一条数据,才有可能修改这条数据,假如先执行修改操作,后执行新增操作,那这个数据就错了。

2023-07-15 12:04:50 1255

原创 JAVA堆外内存分析

1、定义了DirectByteBuffer的操作byte的都是申请了堆外内存,申请的堆外内存需要手动回收,重置最大可用堆外内存大小;2、堆外内存泄露并不会提现在JVM内存使用上,排查方式可以通过JConsole检测堆外内存是否一直增长,之后查询系统中使用了DirectByteBuffer的地方;

2023-07-10 14:41:27 3311

原创 JAVA线程池分析实现

RUNNING:运行状态SHUTDOWN:线程池关闭,不在接收新任务,但线程池队列中的任务还是会执行完成STOP:线程池停止,不接受新任务,且尝试终止线程池队列汇总的任务 TIDYING:线程池队列中所有的任务已经完成TERMINATED:线程池状态为终止。

2023-07-06 12:00:53 437

原创 Spring定时器调度实现的原理

BeanPostProcessor:会对所有Bean,一般是用@Component注解的Bean对象扫描。

2023-07-06 10:33:59 471

原创 一次阿里云Schedulerx换成Spring定时任务的过程

* 手动定时任务处理调用阿里云定时器 {@link com.suyun.vehicle.conf.SpringScheduleConfig}*

2023-07-05 19:52:16 1124

转载 Netty基本使用

1、使用Netty自带的解码器2.自定义序列化规则在 Java 中自带的有实现 Serializable 接口来实现序列化,但由于它性能、安全性等原因一般情况下是不会被使用到的。通常情况下,我们使用Protostuff、Hessian2、json 序列方式比较多,另外还有一些序列化性能非常好的序列化方式也是很好的选择: 专门针对Java 语言的:Kryo,FST 等等 跨语言的:Protostuff(基于 protobuf。

2023-07-03 18:42:48 979

转载 Kafka详解

高可用:多副本机制高并发:网络架构设计 三层架构:多selector -> 多线程 -> 队列的设计(NIO)把数据先写入到OS Cache 写到磁盘上面是顺序写,性能很高,接近内存写读数据:根据稀疏索引,快速定位到要消费的数据,零拷贝机制,减少数据的拷贝,减少了应用程序与操作系统上下文切换KafkaManager — 页面管理工具没有设置key我们的消息就会被轮训的发送到不同的分区。设置了keykafka自带的分区器,会根据key计算出来一个hash值,这个hash值会对应某一个分区。

2023-07-03 15:20:05 199

原创 Redis过期策略

做法:对键设置过期时间时,同步设置一个定时器,当达到定时时间时间时,立即删除键;优点:省内存,立即删除,释放内存;缺点:CPU使用率高,容易造成系统卡顿;Redis并不推荐的方式;

2023-06-29 15:33:36 1150

转载 MYSQL索引的使用

索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下:从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引从应用层次划分:普通索引、唯一索引、主键索引、复合索引从索引键值类型划分:主键索引、辅助索引(二级索引)从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)

2023-06-26 11:48:26 2096 2

原创 Mybatis是怎么生效的

三、Spring初始化MapperFactoryBean对象,它继承了SqlSessionDaoSupport,上面会把SqlSessionFactory对象注入进来,实现了FactoryBean接口的Bean,在注入对象的时候Spring是通过getObject()获取对象注入的,注入的并不一定是对象本身。实现里InitializingBean,在Bean初始化时,会调用afterPropertiesSet钩子方法。

2023-06-16 19:06:09 146

转载 Kafka消息丢失

kafka为了加快持久化消息的性能,把性能较好的follower组成一个ISR列表(in-sync replica),把性能较差的follower组成一个OSR列表(out-of-sync replica),ISR+OSR=AR(assigned repllicas)。如果还不成功怎么办?发送消息和消费消息都在leader上面,follower负责定时从leader上面拉取消息,只有follower从leader上面把这条消息拉取回来,才算生产者发送消息成功。我们只有获取到发送结果,才能确保消息发送成功。

2023-06-16 10:08:17 609

原创 JAVA写入HDFS,映射到Hadoop,HIVE使用

2、操作内容写入HDFS文件系统。1、引入Hadoop的Jar。

2023-06-14 10:57:29 581

原创 Collectors.toMap 根据(key和value排序)Stream的使用

需求:用户想知道每个车队在一段时间内跑里程最多的5辆车,先获取了这一段时间所有的车辆数据,首先排序,之后分组(先分组后排序也一样),之后取前5条,在把他们放入一个Map中,Map需要根据里程排序。根据某个字段分组,之后取每组的前5(可以设置)条,之后返回五个对象的某个属性,根据Value排序(取前5条的时候已经排序,可以使用链表接收)根据某个字段分组,之后取每组的前5(可以设置)条,之后返回五个对象的某个属性,根据Key排序。

2023-06-13 09:45:52 575

原创 记一次Springboot+spring-boot-devtools+Kafak反序列化失败的问题

2、反序列化的接收值使用org.apache.kafka.common.utils.Bytes(kafka-clients Jar里面)1、借助Kafka-client的Bytes对象,定义kafka-clients使用RestClassLoader加载。1、直接使用byte数组接收,直接反序列化byte数组(byte是基本类型,byte数组是引用类型)这样Kafak的bytes数组都使用RestClassLoader加载,对象反序列化就可以了。序列化反序列化都使用RestClassLoader。

2023-06-13 09:02:04 140

原创 记一次binlog恢复Mysql某张表数据的过程

7、把binlog文件转为sql文件(需要转换几个,修改binlog文件名和生成的sql名称就可以了)2、要用户不能操作(如果不能停止,可以新建一个库,所有的binlog执行操作在新库执行)。8、继续新开一个窗口,进入刚刚生成SQL的文件目录下。6、新开一个窗口,找到 mysqlbinlog所在。登录成功后,通过source命令,加载sql文件。可以看出,文件主要更新所在文件是175.sql。10、使用mysql的root用户登录。14、同步刚刚导出的表数据;12、导出这张表的数据。binlog文件所在。

2023-06-06 20:06:05 1655

原创 JDK11+mybatis-plus+shardingsphere分库分表

打开org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration类,断点在,查看shardingRule规则是否正常加载,之后看代码是否正常启动。3、获取指定的数据源后,会包装获取对应org.apache.shardingsphere.shardingjdbc.jdbc.core.connection.ShardingConnection。2、根据@DS的值获取数据源,数据源就是配置的name,会作为map的key。

2023-06-05 15:55:11 824

原创 VUE代码批量格式化

5、开始查找格式化vue文件,点击需要格式化的vue文件夹 views,之后右键,点击Start Format Files: This Folder。2、安装插件 Vetur和Format Files。1、下载安装Visual Studio Code。6、选择完文件之后,点击Do it,开始格式化。复制下面的配置信息,覆盖原始配置,保存配置。3、配置格式化,点击右下角设置。修改之后的文件会变换颜色。4、自定义格式化规则。

2023-06-01 09:06:12 1409 1

原创 记一次处理Spring-boot使用dubbo类型转换失败的问题

3、使用Bootstrap或Extension的ClassLoader做返回,这样也能正常返回,比如用Object接收,但对Dubbo返回的对象,使用强转,也存在加载器不同,不能强转的问题,之后就需要借助反射,反射针对的是属性和方法,不同的加载器也是可以处理的,这样就处理了一个,但每个地方都需要反射,就提炼出一个公共的类处理。第三步、查看报错信息,同一个类型转换失败,但后面加了个RestartClassLoader,没有引入自己实现过这个ClassLoader啊,一般用的是。

2023-05-29 09:47:50 771

原创 记一次Redis消息订阅序列化和反序列化的错误

使用约定优于配置,默认Application文件都放于com.book文件夹下,所有的代码和自定义包都放于com.book.**下面,所以不存在扫描不到;7、判断是否是配置读取优先级的问题,把配置信息放于bootstrap配置文件,bootstrap优先级高于application,发现可以正常读取,问题解决;2、Redis的Config配置了JSON序列化,覆盖JDK序列化,便于中文查看,配置文件使用ConditionalOnProperty断言;1、使用的SpringBoot;2、提高配置读取优先级;

2023-05-26 08:53:49 957

原创 Vue v-for 数组对象更新,视图不更新

定义监听方法,值变更后会更新视图。

2023-04-23 09:41:41 817 1

原创 JAVA国际化中文乱码

国际化对象ResourceBundleMessageSource(可以是别的实现对象)设置解析编码。直接网上找个Unicode转UTF-8在线转回来就可以了。1、项目文件使用的是GBK,正常显示;国际化配置文件中文变为Unicode码。2、项目统一改为UTF-8。

2023-04-07 09:00:11 645

原创 Jwt工具类

HS对称/RSA非对称加密解密工具类。

2023-04-03 11:22:30 468

原创 一次通过.frm和.ibd恢复mysql数据表的过程

4、复制Sql,添加ROW_FORMAT=COMPACT(需要检测生成的Sql语句是否可用)7、查询数据文件位置(也可以通过 /cat /etc/mysql/mysql.cnf查看);10、上传 stat_vehicle_mileage.ibd文件到目录下。5、新建表(新建一个空的数据库,在建一个新表)12、验证数据是否存在 (也可以重启下数据库)12、重启Mysql服务(根据实际命令处理)8、关闭mysql服务(根据实际命令处理)3、执行命令(实际恢复的表)6、断开表和表空间联系。

2023-03-27 17:26:21 731

原创 JAVA在不解压ZIP文件的情况下,提取压缩中的文件,写入新的压缩包

当有一个压缩文件包,又不想先解压,之后选择文件,之后把选择的文件进行压缩时,我们就需要先读取zip压缩中的对象信息,之后把当前对象的流直接写入一个新的输出流里面。效果:根据GruopId创建一个新的文件夹,之后在下面创建一个同名的压缩文件,复制数据,最终耗时7.5s就从一个500M的压缩文件中,创建出来了2个压缩文件包。

2023-03-14 10:43:51 987

原创 JAVA中Excel上传/下载执行公式

在这里插入图片描述

2023-03-03 16:51:01 194

原创 short,int,long和byte[]数组之间的相互转化,包括大小端存储模式

byte[1] = 前面的8个bit(从右往左数 从第9个bit开始)存储的一个byte(低字节位)byte[0] = 前面的8个bit(从右往左数 从第9个bit开始)存储的一个byte(低字节位)(一)、把几个byte的bit跟0XFF(11111111)做&运算,变成2进制位;byte[0] = 后面的8个bit(从右往左数)存储的一个byte(高字节位)byte[1] = 后面的8个bit(从右往左数)存储的一个byte(高字节位)(三)、把所有的二进制位做或(|)运算,就获取了真正的二进制位;

2023-03-03 16:32:24 694

原创 每天分时间段收费订单算法简单实现

3、根据订单创建时间生成一个可逆的有识别度的序列号,防止串改订单信息(可以加一个不可逆算法,如MD5加密,把参数信息都加进去);2、补充收费标准信息,折扣信息,分润信息(防止订单时间内,出现价格变动);

2023-03-01 13:19:26 197

原创 简单的第三方查询校验JAR

1、定义一个JAR,调用方生成CODE,服务方校验CODE。2、需要约定一个统一的KEY。8、使用Controller。4、JAR包代码实现。

2023-02-22 16:40:31 254

用于反编译jar为JAVA代码java -jar cfr-0.152.jar xx.jar -outputdir 路径

反编译 Jar Java

2024-04-02

PDF添加水印文字或图片

PDF添加水印文字或图片

2022-09-28

ip2region.zip

JAVA进行IP定位需要的工具

2022-08-11

Spark配置文件信息修改

使用hive,hadoop,spark,datax,python,scala修改添加的配置

2022-07-13

hive配置文件信息修改

使用hive,hadoop,spark,datax,python,scala修改添加的配置

2022-07-13

hadoop配置文件信息

使用hive,hadoop,spark修改添加的配置

2022-07-13

dolphinscheduler配置

dolphinscheduler使用hive,hadoop,spark,datax,python,scala修改添加的配置

2022-07-13

dolphinscheduler工作流模板

HIVE建表; Mysql同步HIVE; HIVE同步Mysql; HIVE运算;

2022-07-06

编译的spark-hive_2.11-2.3.0和 spark-hive-thriftserver_2.11-2.3.0.jar

spark-hive_2.11-2.3.0 spark-hive-thriftserver_2.11-2.3.0.jar log4j-2.15.0.jar slf4j-api-1.7.7.jar slf4j-log4j12-1.7.25.jar curator-client-2.4.0.jar curator-framework-2.4.0.jar curator-recipes-2.4.0.jar

2022-06-23

hive登录用户名密码校验包

hive登录用户名密码校验包

2022-05-05

JT-808部标协议2011-2019版

JT-808部标协议2011-2019版

2022-04-25

sentinel-dashboard.zip

GitHub下载速度太慢,保存下

2022-04-02

nacos-2.0.2

github下载效率太低, 存储一下

2022-04-02

PowerDesigner导出模板

PowerDesigner导出模板

2022-03-08

IT线上维护项目故障报告模板.zip

IT项目,线上出现报告,进行复盘,编写事故报告。

2022-01-06

IDURABILITY.pptx

JAVA模板导出PPTX

2021-09-18

IDURABILITY.html

JAVA导出PPT模板,代码查看 https://blog.csdn.net/xionglangs/article/details/120162098

2021-09-07

阿里亿级高并发.zip

阿里亿级高并非PDF

2021-05-13

ENERGY.html

itextpdf的pdf模板样式。

2021-04-17

ENERGY.docx

JAVA导出word的easypoi模板

2021-04-16

阿里巴巴Java性能调优实战(2021华山版).rar

阿里巴巴性能调优华山版

2021-01-26

YAPI插件crossRequest.zip

YAPI插件,用于实现跨域,浏览器共享cookies,登录共享session,ABCDEFGHIJKLMNOPQRSTUVWXYZ。

2020-09-18

mybatis-plus自定义模板.zip

1、自定义模板 代码:https://blog.csdn.net/xionglangs/article/details/106396515

2020-05-28

JAVA解析DBC文件

用JAVA解析DBC文件,考虑大小端,生成文件内容跟Vector CANDB++相同。

2019-04-17

CANDBC工具包

根据对应的系统位数安装vcredist工具,之后安装CANdb++,安装完成之后,把Cdbstat.dll放在安装目录的\Exec32下面,之后点击candb.exe。

2019-04-10

DBC文件转EXCEL文件

用于转换dbc文件为excle文件,便于查看,用于验证导入的dbc文件是否正确。

2019-04-10

ireport资料

一份ireportpdf文档,包含一部分简单应用,一个小demo。

2018-11-13

JDK1.8中文版

jdk1.8中文版的API,如果出现打开文件为空,请鼠标右击,点击属性,勾选解除锁定。

2018-07-21

实现可编辑的select

包含jquery.editable-select.min.js和jquery.editable-select.js,demo可以实现select编辑。

2018-07-21

对比2个数据库的差异

对比2个数据库表差异,字段差异,对比字段的维度为表名,字段名,字段属性,字段长度,是否为空,到处到excel中。

2018-01-25

TBSchedule

淘宝提供的开源分布式工具,依赖于zookeeper使用。

2017-07-22

xdoclet-bin-1.2.1

一个工具jar包xdoclet-bin-1.2.1

2017-05-02

JSONObject java解析json需要的jar包和依赖包

java把string转换为json,之后解析需要用到的jar包和依赖包。

2017-04-09

JDBC mysql Junit测试

测试jdbc的连接,可以读取配置文件,

2017-03-20

JDOM API 英文版

这是2份操作JDOM的英文API,没有中文版。

2017-01-13

jquery 工作流 插件

一个jquery工作流插件。

2016-04-07

iText-5.0.6.jar

导出pdf文件需要用到的iTextjar包。

2016-04-07

com.lowagie.text-2.1.7.jar

导出pdf文件需要用到的工具包

2016-04-07

多种联系工具

分数有点高,只是个练习的东西,所以不用下载,是存储在这里的。

2016-03-04

解析json的包

这是解析json需要用到的jar包,网上都可以下到,这里上传下,为了以后好下载。

2016-03-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除