- 博客(96)
- 收藏
- 关注

原创 Spring Boot开发者指南:从零构建腾讯云OCR服务(附完整源码)
腾讯云OCR服务集成开发指南 本文介绍了腾讯云OCR服务的Java集成方案,重点涵盖以下内容:1)腾讯云OCR在金融票据和证件识别方面的优势;2)项目配置流程,包括Maven依赖、YAML参数设置和配置类封装;3)核心实现方案,通过OcrClientConfig管理客户端连接池,TencentOcrService提供同步/异步识别功能,支持身份证和通用文字识别;4)控制器层实现RESTful接口;5)高级特性包括连接池优化、指数退避重试机制、图像预处理(灰度化转换)和防御性编程(文件校验)。该方案采用Spr
2025-07-26 18:00:32
791

原创 Spring Boot集成RabbitMQ终极指南:从配置到高级消息处理
RabbitMQ是一个开源消息代理,实现了AMQP协议,用于异步通信、应用解耦和流量削峰。其核心组件包括生产者、消费者、Exchange(路由中枢)、Queue(消息缓冲区)和Binding(路由规则)。文章详细介绍了RabbitMQ的消息生命周期、高级特性(如持久化、ACK确认、死信队列等),并提供了Spring Boot集成方案,包括YAML配置、自定义配置类、交换机/队列声明工具类,以及完整的消息生产消费示例代码。通过注解@RabbitListener实现消息监听,支持手动ACK和异常重试机制,展示了
2025-07-26 11:04:25
1271

原创 RocketMQ集成SpringBoot与使用
本文主要介绍RocketMQ如何集成SpringBoot,以及RocketMQ的各项配置作用介绍,以及应用场景;
2025-03-27 14:15:14
1464

原创 RocketMQ以及Spring Cloud Stream的介绍
Spring Cloud Stream是一个构建消息驱动微服务的框架,解决了开发人员无感知使用消息中间件的问题。通过进一步封装消息中间件,Spring Cloud Stream实现了代码层面对消息中间件的无感知,甚至可以动态切换中间件(如RabbitMQ切换为RocketMQ或Kafka),使微服务开发更加解耦,服务可以更专注于自身业务流程。
2025-03-27 10:09:33
730

原创 数据库如何分库分表
一、前言中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把4000万数据拆分4张表或者更多。当然也可以分库,
2021-09-02 14:57:45
226

原创 MyBatis-Plus AR模式深度解析:告别冗余DAO层
MyBatis-Plus 的 AR(Active Record)模式是一种面向对象的数据库操作模式,通过实体类直接进行 CRUD 操作,简化了开发流程。
2019-07-11 17:12:22
1729
1

原创 MyBatis-Plus 条件构造器(Wrapper)使用指南
条件构造器(Wrapper)是 MyBatis-Plus 框架中用于动态构建 SQL 条件的核心工具类,通过链式编程方式实现复杂查询条件的组合。其主要作用包括:替代传统 XML 中的动态 SQL 标签提供类型安全的条件构建方式支持 Lambda 表达式语法实现复杂的 AND/OR 条件组合注意:MyBatis-Plus 3.x+ 版本已弃用
2019-07-11 17:04:47
11639
1

原创 FastExcel实现Excel文件读写以及模板填充(Java)
通过@Data@ExcelProperty("编号")@ExcelProperty("姓名")@ExcelProperty("年龄")@Override// 在创建单元格之前的操作(如果需要)@Override// 设置表头样式} else {@Override// 准备数据users.add(new User("张三", 25, "[email protected]"));
2019-07-08 09:58:00
6896
1

原创 使用 scp 在 Linux 服务器之间传输文件
(Secure Copy Protocol)是一个基于 SSH 的安全文件传输工具,用于在 Linux 服务器之间传输文件。通过上述方法,你可以安全地在 Linux 服务器之间传输文件。如果远程服务器的 SSH 服务不是默认的 22 端口,可以使用。如果使用了防火墙,确保防火墙允许 SSH 连接。如果传输的是目录,确保有读取和写入权限。检查防火墙设置,确保允许 SSH 连接。确保使用的用户有权限访问这些文件和目录。:指定 SSH 连接时使用的密钥文件。如果使用 SSH 密钥认证,可以使用。
2018-09-29 11:27:16
1879
1
原创 Spring 事件驱动编程初探:用 @EventListener 轻松处理业务通知
Spring事件机制是观察者模式的实现,包含事件、发布者和监听器三个核心组件。通过用户注册场景演示:1)定义继承ApplicationEvent的事件类;2)使用ApplicationContext发布事件;3)通过@EventListener注解实现监听器;4)创建事件处理接口及实现类完成业务逻辑。该机制实现了业务解耦,发布者发布事件后,由监听器自动处理相关操作,如发送邮件和短信等。
2025-08-29 16:12:02
132
原创 Spring Boot整合MyBatis Plus实现多维度数据权限控制
本文介绍了一个基于MyBatisPlus和Redis的高效数据权限管理系统。系统通过@DataScope注解配置数据权限过滤条件,支持用户、门店、部门等多种过滤类型。核心组件包括:1)数据权限注解定义;2)Redis缓存权限数据;3)MyBatisPlus拦截器自动修改SQL;4)权限处理服务。系统特点包括高性能(Redis缓存)、灵活性(多种过滤类型)、安全性(防SQL注入)和易用性(注解配置)。使用说明包括添加注解、权限初始化等步骤,并提出了权限变更通知、多级缓存等扩展建议,适用于企业级应用的多租户数据
2025-08-29 11:19:01
627
原创 Spring Boot中MyBatis Provider注解实现动态SQL
本文介绍了SpringBoot整合MyBatis实现动态SQL的完整方案。主要包含:1)Maven依赖配置,集成SpringBoot、MyBatis、MySQL和Lombok;2)YAML配置文件,设置数据源、连接池和MyBatis参数;3)采用Provider模式实现动态SQL,通过SQL类构建类型安全的查询语句;4)完整的分层架构实现,包括实体类、Mapper接口、Service层和Controller层;5)支持条件查询、分页、增删改等常见操作。该方案相比XML配置更灵活,能充分利用Java功能构建复
2025-08-29 10:18:29
275
原创 高效稳定:Spring Boot集成腾讯云OSS实现大文件分片上传与全路径获取
本文介绍了一个基于Spring Boot集成的腾讯云OSS文件上传服务实现方案。项目采用标准Maven结构,包含配置类、工具类和控制器等核心组件。通过TencentCOSProperties加载OSS配置,使用COSClient实现文件上传功能,支持普通上传和自动分片大文件上传。控制器提供了文件上传、获取URL等REST接口,并包含全局异常处理。方案还提供了安全优化建议(文件类型校验)、存储优化(按日期分目录)和性能调优参数(线程池配置)。该实现封装了腾讯云COS SDK的主要功能,可作为企业级文件存储服务
2025-08-05 11:06:59
339
原创 java实现表格动态列数据封装
文章摘要:本文介绍了一个基于MyBatis的教学培训记录查询系统实现方案。系统通过SQL查询获取门店、用户、岗位及技能数据,使用自定义的JsonToListTypeHandler处理JSON格式的技能列表数据转换。实现功能包括分页查询(summaryPageList方法)和动态表头处理(processSkillPointData方法),后者通过排序和映射处理确保数据显示一致性。系统支持按门店、关键词、日期范围等条件筛选,并处理了已删除技能点的特殊显示需求。该方案采用Java集合操作和MyBatis框架,实现
2025-08-05 10:50:32
203
原创 枚举策略模式实战:优雅消除支付场景的if-else
本文提出使用枚举实现策略模式来优化支付场景中的条件逻辑。通过定义包含抽象方法的策略枚举(如ALIPAY、WECHAT_PAY等),每个枚举常量实现具体的支付逻辑。上下文处理器通过枚举的valueOf()方法直接获取策略实例,彻底消除if-else语句。该方案具有强类型约束、符合开闭原则(新增策略只需扩展枚举)、集中管理等优势,同时能通过异常处理非法支付类型。适用于策略类型固定且行为简单的场景,相比传统工厂模式更简洁,但对于复杂策略建议仍采用接口+实现类的方式。
2025-07-28 11:38:31
275
原创 告别复杂配置!Spring Boot优雅集成百度OCR的终极方案
本文介绍了SpringBoot集成百度OCR文字识别服务的完整实现方案。主要内容包括:1)注册百度AI平台获取API密钥;2)项目配置添加SpringBoot Web、HttpClient等依赖;3)使用@ConfigurationProperties封装OCR配置参数;4)实现获取AccessToken工具类;5)构建OCR服务层处理图片Base64编码和API请求;6)创建REST接口接收图片文件。方案采用分层架构设计,包含配置管理、服务封装和控制器层,并提供了性能优化建议如Token缓存和连接池管理。
2025-07-26 17:04:57
499
原创 Spring Boot SSE实战:SseEmitter实现多客户端事件广播与心跳保活
这篇文章介绍了如何实现一个基于Spring Boot的SSE(Server-Sent Events)实时消息推送系统。系统包含服务端和客户端实现,主要功能包括:1) 服务端通过EventService管理SSE连接,实现消息广播和心跳机制;2) EventController提供订阅和广播接口;3) 客户端通过JavaScript的EventSource API接收实时消息;4) 包含完善的连接管理,如心跳检测(每25秒)、自动重连、优雅关闭等机制。系统采用线程安全的ConcurrentMap存储连接,支持
2025-07-26 15:09:51
349
原创 零侵入加解密方案:Spring Boot + Jasypt + AOP实现敏感数据自动保护
摘要:本文介绍了一个基于Spring Boot的敏感数据自动加解密方案,通过Jasypt和AOP实现。方案包含:1) 添加Jasypt和AOP依赖;2) 配置加密参数;3) 实现加解密工具类;4) 定义@SensitiveField注解标记敏感字段;5) 使用AOP切面自动处理加解密,支持递归处理嵌套对象;6) 通过@Encrypt/@Decrypt注解控制方法级加解密;7) 在实体类中标记敏感字段,Service层通过注解自动触发加解密。该方案实现了敏感数据的透明化处理,业务代码无需关注加解密细节,同时支
2025-07-23 15:26:34
271
原创 Spring Boot 整合 Redis 实现发布/订阅(含ACK机制 - 事件驱动方案)
纯事件驱动:使用Redis Stream监听器替代轮询,实时处理消息完整ACK机制:确保消息可靠处理,支持失败重试异步处理:避免阻塞监听线程,提高吞吐量错误隔离:死信队列隔离不可处理的消息生产就绪:支持多实例部署,消费者组负载均衡该方案适用于需要高可靠性的消息处理场景,如订单系统、支付处理、事件溯源等。通过Redis Stream的特性,在保证性能的同时提供了比传统PUB/SUB更可靠的消息传递机制。
2025-07-22 14:39:48
969
原创 Spring Boot+Redis Zset:三步构建高可靠延迟队列系统
本文介绍了一个基于Redis ZSet实现的延迟队列系统设计方案。该系统采用生产者-消费者模式,通过Redis有序集合存储任务,使用定时任务扫描到期任务并由线程池异步处理。方案包含完整的实现步骤:1) 添加Spring Boot和Redis依赖;2) 配置Redis连接;3) 定义任务模型;4) 配置Redis序列化;5) 创建处理线程池;6) 实现核心延迟队列服务;7) 提供测试接口。系统具备高性能、低延迟、可扩展等优势,支持订单超时、邮件提醒等场景,同时提供了幂等性处理、死信队列等保障机制。文中还给出了
2025-07-22 13:55:39
722
原创 Spring Boot + Screw-Core + HikariCP:三分钟自动生成数据库设计文档(支持多种数据库)
本文介绍了使用Screw工具生成数据库设计文档的方法。首先需要添加screw-core和HikariCP依赖,然后配置数据源连接信息。通过EngineConfig设置输出目录、文件类型(HTML)和模板类型(freemarker)。ProcessConfig可指定生成规则,包括按表前缀/后缀筛选、忽略特定表等。最后通过DocumentationExecute执行生成过程,将自动创建包含表结构信息的文档。这种方法能快速生成规范的数据库文档,支持自定义输出路径和筛选条件。
2025-07-22 10:37:07
199
原创 SpringBoot集成PDFBox实现PDF导出(表格导出、分页页码、电子签章与数字签名)
本文详细介绍了SpringBoot集成PDFBox实现表格导出和电子签章的完整方案。通过工具类封装,提供了单页/分页表格生成、图片签章、数字签名等功能。方案包含Maven依赖配置、核心工具类实现(支持中文、自动分页、页码计算)、调用示例以及性能优化建议。关键特性包括:1.表格自动分页与页码管理;2.两种签章方式(视觉图片+法律效力数字签名);3.中文字体支持方案;4.大数据量处理优化(流式/分块处理)。实践表明该方案可稳定处理10万+行数据,内存占用控制在500MB内,适用于各类业务报表和法律文档场景。
2025-07-22 10:21:58
660
原创 彻底告别@StreamListener:Spring Cloud Stream函数式+RocketMQ迁移实践
到函数式编程模型的迁移,并集成了 RocketMQ 的全部核心功能。concurrency: 4 # 并发消费者数量。:支持原生特性(顺序消费/延迟消息/事务消息)通过以上配置和代码示例,您已完成从传统。启动 RocketMQ 控制台。:Jackson自动类型转换。# 显式配置Jackson。:绑定关系在YAML中管理。(创建订单Topic)(支付订单Topic)# 增加生产者重试配置。# 增加消费者并发度。
2025-07-21 11:17:46
758
原创 企业级异常处理方案:Spring Boot自定义异常全局拦截实战
本文介绍了Java中异常处理机制的实现方案。首先定义了三种自定义异常类(ApproveException、HandleException、QueryException),然后创建了全局异常处理器ResultException,通过@RestControllerAdvice注解和多个@ExceptionHandler方法统一处理各类异常,包括登录异常、数据异常、工作流异常等。最后设计了ActionResult统一响应体,提供success()和fail()等方法构建标准化响应。该方案实现了异常处理的统一管理,
2025-07-18 17:17:41
245
原创 Java使用FastExcel实现Excel文件导入
本文介绍了使用FastExcel库处理Excel文件的方法。首先配置Maven依赖,包括FastExcel核心库和Apache POI。然后定义映射实体类SetMealDetailsVo,使用注解配置Excel列名、宽度、样式等属性。接着实现自定义监听器CustomSheetListener,在读取数据时校验表头是否正确。最后在业务代码中调用EasyExcel.read()方法读取Excel文件内容,将数据存储到集合中。整个过程包含依赖配置、实体映射、表头校验和业务调用四个关键步骤。
2025-07-17 18:22:35
296
原创 Java使用FastExcel实现模板写入导出(多级表头)
本文介绍了使用FastExcel和Apache POI进行Excel导出的配置与实现方法。首先在Maven配置中添加FastExcel核心库和POI依赖,然后定义导出实体类DishAppManagementOriginalVo,通过注解配置表头样式、列宽等属性。业务层实现中,设置响应头文件类型和名称,利用FastExcel结合模板文件进行数据填充,其中通过EasyExcel获取sheet页并写入查询结果,最终完成Excel导出。该方法实现了基于模板的Excel数据导出功能,支持自定义样式和格式化输出。
2025-07-17 17:50:03
363
原创 50倍性能飞跃!Spring Boot+Doris Stream Load海量数据实时更新方案
本文介绍了一个基于Spring Boot的Doris数据库流式加载方案。系统采用分层架构设计,包含配置管理、核心加载、实体映射和业务服务等模块。通过@DorisField注解实现自动化字段映射,支持字段重命名、排序和忽略等特性。核心类DorisStreamLoader提供并行处理、分批加载、GZIP压缩和指数退避重试机制,显著提升数据加载性能。方案采用LinkedHashMap保持字段顺序,内置智能缓存优化反射性能,并通过详细的响应监控确保数据可靠性。性能测试表明,相比传统JDBC方式可提升20-50倍吞吐
2025-07-17 15:00:16
1114
原创 腾讯云短信实战:Spring Boot接入YML配置与签名/模板/发送/统计/状态工具类详解
注意:以上代码中的部分API调用(如号码包操作)做了简化处理,实际使用时请参考。:SecretId/SecretKey在腾讯云控制台获取。:腾讯云默认限流300次/秒,需注意控制发送频率。:将International参数设为1。:模板中的变量使用{1}、{2}格式。:实际使用需添加更完善的异常处理。:需提前在控制台申请并通过审核。
2025-07-15 12:11:20
857
原创 腾讯云短信实战:Spring Boot接入YML配置与签名/模板/发送/统计/状态/号码包工具类详解
本文介绍了SpringBoot集成腾讯云短信服务的完整实现方案。主要内容包括:1) 添加腾讯云Java SDK依赖;2) application.yml配置短信参数(SecretId、模板ID等);3) 配置读取类TencentSmsConfig;4) 实现6个核心工具类:SmsSignUtils(签名管理)、SmsTemplateUtils(模板操作)、SmsSendUtils(单发/群发)、SmsStatisticsUtils(数据统计)、SmsStatusUtils(状态拉取)和SmsPhoneUti
2025-07-15 12:07:03
373
原创 Spring Boot + Vue2 实现腾讯云 COS 文件上传:从零搭建分片上传系统
普通上传大文件分片上传(支持并发、断点续传)安全性增强(密钥不暴露)跨域规则配置(CORS)可根据实际业务需求进一步扩展,如添加上传进度持久化、上传失败重试机制等。
2025-07-14 17:08:32
858
原创 Spring Boot 实现图片防盗链:Referer 校验与 Token 签名校验完整指南
本文介绍了两种SpringBoot实现图片防盗链的方案:1)Referer校验:通过拦截器检查请求头中的Referer字段,只允许白名单域名访问,实现简单但安全性较低;2)Token签名校验:采用动态生成的签名token(含时效性验证),安全性更高但实现较复杂。文章对比了两种方案的优缺点,并提供了完整代码示例,包括拦截器实现、签名生成工具类和安全URL生成方法。建议对安全性要求高的场景使用Token方案,或结合两种方案实现双重验证,同时要注意HTTPS传输、定期更换密钥等安全实践。
2025-07-14 15:41:49
278
原创 从数据库到播放器:Java视频续播功能完整实现解析
Java实现视频续播功能的技术方案:通过SpringBoot后端存储播放进度(用户ID+视频ID+时间位置),前端定期保存当前播放时间并恢复播放。核心实现包括:1)数据库存储播放记录;2)后端提供进度保存/查询接口;3)前端定时提交进度并在播放时定位。优化建议包含节流控制、本地缓存和Redis应用,支持多端同步播放进度,有效提升用户体验。方案涉及实体类设计、Repository接口、Service业务层和Controller控制层实现。
2025-07-14 14:26:02
453
原创 前后端协同作战:Java实现Token无感刷新全流程
Java应用实现无感Token刷新方案:采用双Token机制(短期AccessToken+长期RefreshToken),当AccessToken过期时自动用RefreshToken获取新Token并重试请求。技术实现包括:1)JWT工具类生成/验证Token;2)拦截器处理401错误并刷新Token;3)前端axios拦截器自动重试请求。注意需安全存储Token、处理并发刷新、定期轮换RefreshToken,失效时跳转登录页。该方案确保用户无感知续期,提升体验安全性。
2025-07-14 10:57:08
329
原创 Java加密全家桶:哈希、对称、非对称、HMAC一次讲透
本文介绍了四种常用加密算法的Java实现工具类:1️⃣ 哈希工具HashUtils:支持MD5/SHA系列算法,用于数据完整性校验;2️⃣ AESUtils:实现CBC模式的对称加密,适合大数据量传输;3️⃣ RSAUtils:提供2048位密钥的非对称加密和数字签名功能;4️⃣ EccUtils:基于椭圆曲线实现更高效的密钥交换和签名验证。每个工具类均包含密钥生成、加解密核心方法,并展示实际调用示例,涵盖从基础哈希到高级非对称加密的完整解决方案。
2025-07-14 09:37:53
917
原创 告别数据不一致!Spring Boot+Canal+RocketMQ实现精准的MySQL变更监听
Canal 客户端:负责监听 MySQL binlog 变更RocketMQ 生产者:将 binlog 事件发送到消息队列RocketMQ 消费者:异步处理变更事件完整配置:包含 MySQL、Canal Server 和 RocketMQ 的配置解耦:数据处理与数据捕获分离可靠性:消息持久化保证不丢失扩展性:消费者可水平扩展容错性:重试机制和死信队列顺序性:相同表的数据变更保持顺序生产环境部署时,请根据实际流量调整:Canal 的batch-size参数RocketMQ 的 Topic 分区数。
2025-07-07 17:58:26
1293
原创 MySQL与Redis数据一致性终极指南:从理论到落地实践
摘要:本文探讨Java中MySQL与Redis数据一致性的解决方案,重点分析了Cache Aside、Write Through等常见方案的优缺点。推荐采用Cache Aside+延迟双删+监控补偿的组合方案,通过同步删除、异步重试和定时任务等多重机制,将不一致窗口控制在毫秒级。方案包含异常处理流程,设计了补偿表和指数退避重试策略,并提供了SpringBoot实现示例,在保证系统性能的同时实现高可靠性,适用于多数分布式场景。
2025-07-04 11:00:42
1088
原创 实时追踪MySQL慢查询:深入解读performance_schema.events_statements_current
摘要:查看MySQL当前执行查询可使用performance_schema.events_statements_current表,该表记录各线程最新执行的SQL语句(包括运行中或刚结束的)。关键字段含线程ID、SQL文本、执行耗时、扫描行数等,用于诊断性能问题。典型应用包括定位长耗时查询、分析慢查询和追踪未使用索引的语句。需注意该表仅记录最后执行的语句,且需提前启用相关配置。用户需要SELECT和performance_schema访问权限。生产环境建议配合sys.session视图使用,可获得更易读的信息
2025-07-03 17:50:11
491
原创 深分页末日救星:MySQL延迟关联原理与实战手册
MySQL深分页优化方案解析 深分页(LIMIT 100000,10)存在严重性能问题,本质是扫描大量数据却只返回少量记录。核心优化方案: 延迟关联法(最优解) 原理:先查主键再回表,减少回表量 示例:通过子查询先获取ID,再关联原表 性能:1.2s→0.05s(百万数据) 游标分页 原理:记录上页末ID作为下页起点 特点:恒定10行扫描,但只能连续访问 范围分页 适用:时间排序场景 关键:在时间字段建索引 业务优化 禁止跳页/数据归档/搜索引擎分流 最佳实践: 优先延迟关联+覆盖索引 次选游标分页
2025-07-03 16:42:23
725
原创 为什么 MySQL 索引必用 B+ 树?深度解析三大设计杀招!
MySQL选择B+树而非B树作为索引结构,主要基于三个核心优势:1.更低树高使千万级数据查询仅需2-3次I/O,比B树减少30%-50%的磁盘访问;2.叶子节点双向链表结构使范围查询效率提升80%,全表扫描减少40%耗时;3.纯索引化的非叶节点提升缓存利用率,且数据变更仅影响叶子节点,维护成本更低。实际测试显示B+树在范围查询和全表扫描等高频操作中显著优于B树,完美适配数据库的磁盘存储特性和查询模式。
2025-07-03 16:10:34
791
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人