- 博客(33)
- 收藏
- 关注
原创 基于EasyExcel导入数据Java实现
本文介绍了如何使用EasyExcel处理特殊格式的Excel文件导入。主要包括五个部分:1)引入EasyExcel依赖;2)自定义监听器类,通过invoke()方法处理每行数据并保存到实体类;3)定义接收实体类,使用@ExcelProperty指定列索引,@ExcelIgnore忽略不需接收的字段;4)模板校验逻辑,比较上传文件与模板文件的内容;5)实现代码,通过监听器读取数据并处理。文章重点说明了如何解决数据类型转换异常问题,以及如何灵活处理不同业务场景下的Excel导入需求。
2025-09-18 10:51:02
454
原创 结合Spring Security 框架+ JWT,Java实现短信验证码、账号密码Token认证登录
本文介绍了基于Spring Security实现双因素认证(账号密码+短信验证码)的技术方案。系统采用JWT令牌进行无状态认证,关键实现包括:1)自定义安全配置类整合多种认证方式;2)SM3国密算法加密存储密码;3)SM2非对称加密保障传输安全;4)JWT过滤器实现Token校验与续期;5)异常处理机制精细化权限管控。方案通过组合AuthenticationProvider、自定义UserDetailsService和密码编码器等核心组件,构建了支持多种登录方式的安全认证体系,同时确保密码在传输和存储过程中
2025-09-09 18:26:35
1096
原创 简单实现阿里云短信发送服务(验证码)
阿里云短信服务使用指南:1. 需完成企业实名认证开通服务,获取RAM子账号AccessKey;2. 申请短信签名需7-10天运营商报备;3. 创建含变量的短信模板并审核;4. 通过API或控制台发送,需配置签名、模板和参数;5. 建议设置预警防止盗刷。代码实现需引入SDK依赖,配置密钥参数,使用工具类封装发送逻辑,处理业务回调。注意签名和模板需提前审核,发送参数需转为JSON格式匹配模板变量。
2025-09-09 14:26:32
1238
原创 以图搜图--抓取百度图片方式(数据抓取)
文章摘要: 本文介绍了基于图片的相似图片搜索功能实现方案。需求分析指出需要支持全网图片搜索而非仅限私有图库。方案设计提出两种实现方式:1)使用第三方API(百度AI、Bing图搜);2)数据抓取方式(仅供学习)。重点讲解了数据抓取方案的技术实现,包括三个核心步骤:获取图片搜索页面URL、提取图片列表地址、解析图片数据。采用门面模式封装了三个API接口,简化调用流程。代码示例展示了Java实现过程,包括HTTP请求处理、JSON解析等关键技术点。特别提醒数据抓取方式需注意避免给目标网站造成压力。
2025-08-12 09:30:32
1685
原创 caffeine本地缓存--Java实现
本文介绍了本地缓存Caffeine的应用场景及实现方法。本地缓存适用于数据量小、无需共享、高频访问的场景(如临时会话、热点数据)。通过Maven引入Caffeine依赖后,可配置缓存容量、过期时间等参数。代码示例展示了如何构建缓存对象、设置缓存键值、查询缓存及数据库数据,并实现JSON格式的数据存取。该方法能有效提升系统性能,减少数据库访问压力,适用于高频低延迟的业务场景。
2025-08-07 18:21:36
326
原创 Redis配置、测试及分布式缓存实现
本文介绍了在Spring Boot项目中集成Redis的完整流程。首先通过引入spring-boot-starter-data-redis依赖来配置Redis,详细说明了Redis的各项参数设置,包括数据库索引、服务器地址、端口等。接着展示了Redis的基本操作测试,包括增删改查功能的实现与验证。最后提供了一个Redis分布式缓存的简单实现方案,演示了如何查询缓存、处理缓存未命中情况以及设置随机过期时间防止雪崩效应。文中还特别强调了安全注意事项,如避免使用root用户名等细节,为开发者提供了完整的Redis
2025-08-07 17:47:18
435
原创 基数排序-Java实现
摘要:基数排序是一种非比较型排序算法,通过逐位处理数字从最低位到最高位实现排序。其时间复杂度为O(n×k),空间复杂度O(n+k),适用于整数或定长字符串排序。算法步骤包括确定最大位数、逐位进行计数排序和重新排列元素。代码示例展示了如何通过桶排序处理每位数字并完成排序。该算法在特定场景下性能优于比较排序,且具有稳定性。(148字)
2025-07-30 17:15:06
365
原创 桶排序-Java实现
桶排序是一种分布式排序算法,通过将元素分配到有限数量的桶中,对每个桶单独排序后合并结果。其时间复杂度最优可达O(n),适合均匀分布的数据集。文章详细介绍了桶排序的基本原理、算法步骤(包括确定桶范围、分配元素、桶内排序和合并结果),并提供了浮点型和整型两种Java实现代码。实现中需要注意桶的数量和范围设置,以及特殊情况的处理。桶排序结合了哈希表思想,在特定场景下非常高效,但需要额外空间。文章最后指出该算法在实际应用中仍需优化桶的设置,并以LeetCode题目为例说明其应用价值。
2025-07-30 15:38:33
481
原创 Java实现对象之间的Copy
本文介绍了一个基于Spring BeanUtils的增强工具类BeanCopyUtils,用于简化对象属性复制操作。该工具类提供两种核心功能:1)单个对象属性复制时可选忽略null值(copyPropertiesIgnoreNull方法);2)集合对象批量复制(copyListProperties系列方法)。主要特点包括通过Supplier实现目标对象实例化、支持自定义回调处理、自动处理null值忽略等。使用时只需调用对应方法即可快速完成对象/集合的属性复制,避免了手动set/get的繁琐操作,适用于DTO
2025-06-26 16:22:16
301
原创 JAVA 实现类字段内容比较工具类
摘要:EntityComparator工具类提供了灵活的Java对象字段比较功能,支持不同字段类型(包括基本类型、集合、Map、数组和嵌套对象)的深度比较。主要特性包括:1)可指定忽略字段;2)支持两种比较模式:详细输出差异字段或快速判断是否相等;3)特殊处理BigDecimal数值比较;4)递归比较嵌套对象。该工具通过反射获取所有字段,能自动处理继承关系,适用于需要精确比较对象差异的业务场景,如数据校验、变更检测等。
2025-06-18 14:53:38
262
原创 MVCC机制:Undo Log版本链与ReadView机制
MVCC机制、undo Log版本链、ReadView机制,可重复读事务隔离级别,可重复读的实现原理及流程
2025-06-05 18:29:36
1449
2
原创 处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
2025-04-28 16:10:05
888
原创 【报错】java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class com.xx.xxx
针对项目中WebSocket出现的项目无法启动问题的一些解决方案
2024-02-21 16:16:44
1861
原创 RabbitMQ---延迟消息
主要分析RabbitMQ延迟消息的实现方式,延迟队列使用消息过期时间及死信队列实现,延迟消息插件较上面的方法更便捷
2024-01-23 23:36:23
8145
3
原创 RabbitMQ--消费者可靠性
消费者的可靠性,主要分为消费者的确认机制,消息消费失败之后的处理策略,在一些非幂等性的操作时如何保证消息消费的幂等性。
2024-01-17 15:14:36
851
原创 RabbitMQ----MQ的可靠性
这里主要是针对MQ可靠性的实现方案,并测试在不同MQ版本下,使用不用队列造成的影响,以及新版本下惰性队列的优势
2024-01-17 00:26:22
1414
原创 RabbitMQ----生产者可靠性
对于如何确保生产者的可靠,这里通过分析能让你对如何使用不同的方式对生产者可靠性的保障有一定的了解,也权衡利弊
2024-01-16 16:37:39
1951
1
原创 RabbitMQ----消息转换器
主要是对RabbitMQ队列数据的存储格式约束,避免在JDK自带序列化工具类对数据序列化后造成的一系列问题,通过自定义序列化来实现消息的转换。
2024-01-12 23:50:50
813
1
原创 RabbitMQ之代码声明队列及交换机的两种方式
针对队列的声明方式,有两种不同形式的声明方式,普通方式代码量较多,阅读性较低,容易混乱,而注解的方式简便易懂!
2024-01-12 19:20:07
741
1
原创 项目搭建之通用功能、配置
类别:AES、RSA、MD5在pom.xml文件添加加解密依赖添加加解密工具类三种加解密工具不同之处及用处:AES(对称加密):特点:加密速度非常快,适合经常发送数据的场合适用场景:频繁的请求交互RSA加密(非对称加密)MD5加密(哈希算法)AESUtil类实现代码如下: 加密方法:encrypt() ;解密方法:decrypt() MD5Util 类实现代码如下:加密方法:sign();解密方法:verify() AESUtil类实现代码如下: 加密方法:encrypt() ;解密方法:
2024-01-03 14:26:20
452
1
原创 索引:从模型到如何使用维护!
先从以上思维导图梳理,首先要知道索引的是做什么的,再者了解其内部使用的模型,结合当前流行的数据库引擎InnoDB去分析索引,进一步分析索引的使用和维护。
2023-12-23 16:26:35
538
1
原创 MySQL数据库的SQL查询语句的执行流程
Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。开始执行的时候,要先判断一下你对这个表 T 有没有执行查询的权限,如果没有,就会返回没有权限的错误,如下所示 (在工程实现上,如果命中查询缓存,会在查询缓存返回结果的时候,做权限验证。在完成经典的 TCP 握手后,连接器就要开始认证你的身份,这个时候用的就是你输入的用户名和密码。
2023-11-15 01:11:11
413
原创 LeetCode 第一题:两数之和
https://leetcode.cn/problems/two-sum/description/?favorite=2cktkvj
2023-08-13 00:34:01
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅