- 博客(106)
- 收藏
- 关注
原创 Spring Boot开发者指南:从零构建腾讯云OCR服务(附完整源码)
腾讯云OCR服务集成开发指南 本文介绍了腾讯云OCR服务的Java集成方案,重点涵盖以下内容:1)腾讯云OCR在金融票据和证件识别方面的优势;2)项目配置流程,包括Maven依赖、YAML参数设置和配置类封装;3)核心实现方案,通过OcrClientConfig管理客户端连接池,TencentOcrService提供同步/异步识别功能,支持身份证和通用文字识别;4)控制器层实现RESTful接口;5)高级特性包括连接池优化、指数退避重试机制、图像预处理(灰度化转换)和防御性编程(文件校验)。该方案采用Spr
2025-07-26 18:00:32
1000
原创 Spring Boot集成RabbitMQ终极指南:从配置到高级消息处理
RabbitMQ是一个开源消息代理,实现了AMQP协议,用于异步通信、应用解耦和流量削峰。其核心组件包括生产者、消费者、Exchange(路由中枢)、Queue(消息缓冲区)和Binding(路由规则)。文章详细介绍了RabbitMQ的消息生命周期、高级特性(如持久化、ACK确认、死信队列等),并提供了Spring Boot集成方案,包括YAML配置、自定义配置类、交换机/队列声明工具类,以及完整的消息生产消费示例代码。通过注解@RabbitListener实现消息监听,支持手动ACK和异常重试机制,展示了
2025-07-26 11:04:25
1586
原创 RocketMQ集成SpringBoot与使用
本文主要介绍RocketMQ如何集成SpringBoot,以及RocketMQ的各项配置作用介绍,以及应用场景;
2025-03-27 14:15:14
1635
原创 RocketMQ以及Spring Cloud Stream的介绍
Spring Cloud Stream是一个构建消息驱动微服务的框架,解决了开发人员无感知使用消息中间件的问题。通过进一步封装消息中间件,Spring Cloud Stream实现了代码层面对消息中间件的无感知,甚至可以动态切换中间件(如RabbitMQ切换为RocketMQ或Kafka),使微服务开发更加解耦,服务可以更专注于自身业务流程。
2025-03-27 10:09:33
852
原创 数据库如何分库分表
一、前言中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把4000万数据拆分4张表或者更多。当然也可以分库,
2021-09-02 14:57:45
244
原创 MyBatis-Plus AR模式深度解析:告别冗余DAO层
MyBatis-Plus 的 AR(Active Record)模式是一种面向对象的数据库操作模式,通过实体类直接进行 CRUD 操作,简化了开发流程。
2019-07-11 17:12:22
1802
1
原创 MyBatis-Plus 条件构造器(Wrapper)使用指南
条件构造器(Wrapper)是 MyBatis-Plus 框架中用于动态构建 SQL 条件的核心工具类,通过链式编程方式实现复杂查询条件的组合。其主要作用包括:替代传统 XML 中的动态 SQL 标签提供类型安全的条件构建方式支持 Lambda 表达式语法实现复杂的 AND/OR 条件组合注意:MyBatis-Plus 3.x+ 版本已弃用
2019-07-11 17:04:47
12075
1
原创 FastExcel实现Excel文件读写以及模板填充(Java)
通过@Data@ExcelProperty("编号")@ExcelProperty("姓名")@ExcelProperty("年龄")@Override// 在创建单元格之前的操作(如果需要)@Override// 设置表头样式} else {@Override// 准备数据users.add(new User("张三", 25, "zhangsan@example.com"));
2019-07-08 09:58:00
7539
1
原创 使用 scp 在 Linux 服务器之间传输文件
(Secure Copy Protocol)是一个基于 SSH 的安全文件传输工具,用于在 Linux 服务器之间传输文件。通过上述方法,你可以安全地在 Linux 服务器之间传输文件。如果远程服务器的 SSH 服务不是默认的 22 端口,可以使用。如果使用了防火墙,确保防火墙允许 SSH 连接。如果传输的是目录,确保有读取和写入权限。检查防火墙设置,确保允许 SSH 连接。确保使用的用户有权限访问这些文件和目录。:指定 SSH 连接时使用的密钥文件。如果使用 SSH 密钥认证,可以使用。
2018-09-29 11:27:16
2012
1
原创 高性能Java并发编程:如何优雅地使用CompletableFuture进行异步编排
【代码】高性能Java并发编程:如何优雅地使用CompletableFuture进行异步编排。
2026-01-08 15:37:06
220
原创 扔掉 Assert!这款国产脚手架的 BizException 让代码瘦成一道闪电
【代码】扔掉 Assert!这款国产脚手架的 BizException 让代码瘦成一道闪电。
2025-12-22 10:46:01
117
原创 SQL 也能飞:MySQL 8.0 窗口函数让排名、累计、环比一步到位
窗口函数是SQL中强大的分析工具,它能在保留原表所有行的同时,为每行附加计算结果。核心语法为"函数OVER(分区排序帧)",包含排名(ROW_NUMBER/RANK)、偏移(LAG/LEAD)、聚合(SUM/AVG)等函数类型。典型应用包括分组排名、累计求和、环比增长率和移动平均计算。相比传统聚合,窗口函数无需子查询即可实现复杂分析,执行效率更高。使用时建议为PARTITION BY和ORDER BY列创建联合索引,大数据量时可调优排序缓冲区。掌握"先分区、再排序、后帧范围&q
2025-12-22 10:21:33
486
原创 Spring Boot 使用FastExcel实现多级表头动态数据填充导出
本文介绍了使用FastExcel库实现动态表头Excel导出的方法。主要包括:1)通过Maven引入FastExcel依赖;2)定义动态表头实体类,使用注解配置表头样式、列宽等属性;3)实现自定义表头处理器(CellWriteHandler),动态替换表头中的占位符变量;4)提供导出工具类,支持按指标类型生成包含年度和月度数据的多Sheet Excel文件。该方法通过注解和处理器机制,实现了灵活的表头定制和动态数据填充功能。
2025-12-19 17:46:17
334
1
原创 Spring Boot 使用FastExcel实现多文件打包 ZIP导出
该代码实现了一个年度目标数据导出功能,主要包含以下功能点:1) 使用Maven依赖引入FastExcel工具;2) 通过ZipOutputStream将数据打包成ZIP文件下载;3) 包含两个主要导出方法:generateIndexStaExcelFile用于生成指标年度汇总Excel文件,generateSingleIndexStaExcelFile生成按指标分类的年度/月度目标汇总文件;4) 数据处理包括计算完成率、组织门店数据等;5) 使用EasyExcel进行Excel写入操作,并支持自定义表头。代
2025-12-12 14:10:10
249
2
原创 实战演练:如何在Spring Boot项目中优雅地使用参数校验
本文总结了Java Bean Validation校验注解的使用场景,分为五大类:1)空值校验(@NotNull/@NotEmpty/@NotBlank);2)长度/数值校验(@Size/@Min/@Max等);3)格式校验(@Email/@Pattern);4)专用校验(@AssertTrue/@Past等);5)Hibernate扩展(@Range/@UniqueElements)。提供了SpringBoot集成示例,展示了如何通过@Validated和@Valid注解实现自动参数校验,包括常见字段如用
2025-12-12 11:29:07
357
原创 深度剖析@RocketMQMessageListener:参数详解与最佳实践
摘要:@RocketMQMessageListener是SpringBoot集成RocketMQ的核心注解,用于定义消息消费者。主要参数包括消费者组、主题、消费模式等,支持TAG和SQL92两种消息过滤方式。该注解支持多种复杂场景:1)顺序消息消费(单线程处理);2)广播模式配置同步;3)事务消息处理;4)批量消息消费;5)延时消息与重试策略;6)多环境隔离消费;7)自定义消息选择器。这些功能覆盖了顺序消费、事务处理、批量操作等实际业务需求,展现了RocketMQ在消息中间件领域的强大灵活性。
2025-11-05 18:04:27
492
原创 Nacos集群部署实战:3节点+Nginx+MySQL高可用方案
我们将采用3个Nacos节点 + 1个MySQL主从集群的架构,这是生产环境的标准配置。目录部署架构概述环境准备服务器要求第一步:数据库准备1.1 创建数据库和用户1.2 导入初始化SQL第二步:部署Nacos集群2.1 在所有节点安装Nacos2.2 配置集群节点列表2.3 配置数据库连接2.4 配置JVM参数(可选但推荐)第三步:配置负载均衡器3.1 安装和配置Nginx3.2 启动Nginx第四步:启动Nacos集群4.1 启动所有Nacos节点4.2 检查启动状态第五步:验证集群状态。
2025-11-04 14:48:29
1118
原创 一种基于注解与AOP的Spring Boot接口限流防刷方案
本文介绍了基于Spring Boot实现接口防刷功能的完整方案。通过自定义注解@AccessLimit实现灵活配置,可设置时间范围、最大访问次数、IP检查及用户身份验证等参数。使用AOP切面结合Redis进行请求计数,通过构建包含方法、IP和用户信息的复合Key来区分不同请求来源。当请求超过限制时抛出异常,由全局异常处理器统一返回提示信息。该方案支持不同粒度的访问控制,包括纯IP限制、用户身份限制或两者结合,可灵活应用于各类接口防护场景。
2025-09-05 16:34:04
287
原创 Spring 事件驱动编程初探:用 @EventListener 轻松处理业务通知
Spring事件机制是观察者模式的实现,包含事件、发布者和监听器三个核心组件。通过用户注册场景演示:1)定义继承ApplicationEvent的事件类;2)使用ApplicationContext发布事件;3)通过@EventListener注解实现监听器;4)创建事件处理接口及实现类完成业务逻辑。该机制实现了业务解耦,发布者发布事件后,由监听器自动处理相关操作,如发送邮件和短信等。
2025-08-29 16:12:02
208
原创 Spring Boot整合MyBatis Plus实现多维度数据权限控制
本文介绍了一个基于MyBatisPlus和Redis的高效数据权限管理系统。系统通过@DataScope注解配置数据权限过滤条件,支持用户、门店、部门等多种过滤类型。核心组件包括:1)数据权限注解定义;2)Redis缓存权限数据;3)MyBatisPlus拦截器自动修改SQL;4)权限处理服务。系统特点包括高性能(Redis缓存)、灵活性(多种过滤类型)、安全性(防SQL注入)和易用性(注解配置)。使用说明包括添加注解、权限初始化等步骤,并提出了权限变更通知、多级缓存等扩展建议,适用于企业级应用的多租户数据
2025-08-29 11:19:01
904
原创 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
367
原创 高效稳定:Spring Boot集成腾讯云OSS实现大文件分片上传与全路径获取
本文介绍了一个基于Spring Boot集成的腾讯云OSS文件上传服务实现方案。项目采用标准Maven结构,包含配置类、工具类和控制器等核心组件。通过TencentCOSProperties加载OSS配置,使用COSClient实现文件上传功能,支持普通上传和自动分片大文件上传。控制器提供了文件上传、获取URL等REST接口,并包含全局异常处理。方案还提供了安全优化建议(文件类型校验)、存储优化(按日期分目录)和性能调优参数(线程池配置)。该实现封装了腾讯云COS SDK的主要功能,可作为企业级文件存储服务
2025-08-05 11:06:59
549
原创 java实现表格动态列数据封装
文章摘要:本文介绍了一个基于MyBatis的教学培训记录查询系统实现方案。系统通过SQL查询获取门店、用户、岗位及技能数据,使用自定义的JsonToListTypeHandler处理JSON格式的技能列表数据转换。实现功能包括分页查询(summaryPageList方法)和动态表头处理(processSkillPointData方法),后者通过排序和映射处理确保数据显示一致性。系统支持按门店、关键词、日期范围等条件筛选,并处理了已删除技能点的特殊显示需求。该方案采用Java集合操作和MyBatis框架,实现
2025-08-05 10:50:32
251
原创 枚举策略模式实战:优雅消除支付场景的if-else
本文提出使用枚举实现策略模式来优化支付场景中的条件逻辑。通过定义包含抽象方法的策略枚举(如ALIPAY、WECHAT_PAY等),每个枚举常量实现具体的支付逻辑。上下文处理器通过枚举的valueOf()方法直接获取策略实例,彻底消除if-else语句。该方案具有强类型约束、符合开闭原则(新增策略只需扩展枚举)、集中管理等优势,同时能通过异常处理非法支付类型。适用于策略类型固定且行为简单的场景,相比传统工厂模式更简洁,但对于复杂策略建议仍采用接口+实现类的方式。
2025-07-28 11:38:31
326
原创 告别复杂配置!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
671
原创 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
864
原创 零侵入加解密方案: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
381
原创 Spring Boot 整合 Redis 实现发布/订阅(含ACK机制 - 事件驱动方案)
纯事件驱动:使用Redis Stream监听器替代轮询,实时处理消息完整ACK机制:确保消息可靠处理,支持失败重试异步处理:避免阻塞监听线程,提高吞吐量错误隔离:死信队列隔离不可处理的消息生产就绪:支持多实例部署,消费者组负载均衡该方案适用于需要高可靠性的消息处理场景,如订单系统、支付处理、事件溯源等。通过Redis Stream的特性,在保证性能的同时提供了比传统PUB/SUB更可靠的消息传递机制。
2025-07-22 14:39:48
1231
原创 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
809
原创 Spring Boot + Screw-Core + HikariCP:三分钟自动生成数据库设计文档(支持多种数据库)
本文介绍了使用Screw工具生成数据库设计文档的方法。首先需要添加screw-core和HikariCP依赖,然后配置数据源连接信息。通过EngineConfig设置输出目录、文件类型(HTML)和模板类型(freemarker)。ProcessConfig可指定生成规则,包括按表前缀/后缀筛选、忽略特定表等。最后通过DocumentationExecute执行生成过程,将自动创建包含表结构信息的文档。这种方法能快速生成规范的数据库文档,支持自定义输出路径和筛选条件。
2025-07-22 10:37:07
787
原创 SpringBoot集成PDFBox实现PDF导出(表格导出、分页页码、电子签章与数字签名)
本文详细介绍了SpringBoot集成PDFBox实现表格导出和电子签章的完整方案。通过工具类封装,提供了单页/分页表格生成、图片签章、数字签名等功能。方案包含Maven依赖配置、核心工具类实现(支持中文、自动分页、页码计算)、调用示例以及性能优化建议。关键特性包括:1.表格自动分页与页码管理;2.两种签章方式(视觉图片+法律效力数字签名);3.中文字体支持方案;4.大数据量处理优化(流式/分块处理)。实践表明该方案可稳定处理10万+行数据,内存占用控制在500MB内,适用于各类业务报表和法律文档场景。
2025-07-22 10:21:58
958
原创 彻底告别@StreamListener:Spring Cloud Stream函数式+RocketMQ迁移实践
到函数式编程模型的迁移,并集成了 RocketMQ 的全部核心功能。concurrency: 4 # 并发消费者数量。:支持原生特性(顺序消费/延迟消息/事务消息)通过以上配置和代码示例,您已完成从传统。启动 RocketMQ 控制台。:Jackson自动类型转换。# 显式配置Jackson。:绑定关系在YAML中管理。(创建订单Topic)(支付订单Topic)# 增加生产者重试配置。# 增加消费者并发度。
2025-07-21 11:17:46
928
原创 企业级异常处理方案:Spring Boot自定义异常全局拦截实战
本文介绍了Java中异常处理机制的实现方案。首先定义了三种自定义异常类(ApproveException、HandleException、QueryException),然后创建了全局异常处理器ResultException,通过@RestControllerAdvice注解和多个@ExceptionHandler方法统一处理各类异常,包括登录异常、数据异常、工作流异常等。最后设计了ActionResult统一响应体,提供success()和fail()等方法构建标准化响应。该方案实现了异常处理的统一管理,
2025-07-18 17:17:41
284
原创 Java使用FastExcel实现Excel文件导入
本文介绍了使用FastExcel库处理Excel文件的方法。首先配置Maven依赖,包括FastExcel核心库和Apache POI。然后定义映射实体类SetMealDetailsVo,使用注解配置Excel列名、宽度、样式等属性。接着实现自定义监听器CustomSheetListener,在读取数据时校验表头是否正确。最后在业务代码中调用EasyExcel.read()方法读取Excel文件内容,将数据存储到集合中。整个过程包含依赖配置、实体映射、表头校验和业务调用四个关键步骤。
2025-07-17 18:22:35
684
原创 Java使用FastExcel实现模板写入导出(多级表头)
本文介绍了使用FastExcel和Apache POI进行Excel导出的配置与实现方法。首先在Maven配置中添加FastExcel核心库和POI依赖,然后定义导出实体类DishAppManagementOriginalVo,通过注解配置表头样式、列宽等属性。业务层实现中,设置响应头文件类型和名称,利用FastExcel结合模板文件进行数据填充,其中通过EasyExcel获取sheet页并写入查询结果,最终完成Excel导出。该方法实现了基于模板的Excel数据导出功能,支持自定义样式和格式化输出。
2025-07-17 17:50:03
859
原创 50倍性能飞跃!Spring Boot+Doris Stream Load海量数据实时更新方案
本文介绍了一个基于Spring Boot的Doris数据库流式加载方案。系统采用分层架构设计,包含配置管理、核心加载、实体映射和业务服务等模块。通过@DorisField注解实现自动化字段映射,支持字段重命名、排序和忽略等特性。核心类DorisStreamLoader提供并行处理、分批加载、GZIP压缩和指数退避重试机制,显著提升数据加载性能。方案采用LinkedHashMap保持字段顺序,内置智能缓存优化反射性能,并通过详细的响应监控确保数据可靠性。性能测试表明,相比传统JDBC方式可提升20-50倍吞吐
2025-07-17 15:00:16
1459
原创 腾讯云短信实战:Spring Boot接入YML配置与签名/模板/发送/统计/状态工具类详解
注意:以上代码中的部分API调用(如号码包操作)做了简化处理,实际使用时请参考。:SecretId/SecretKey在腾讯云控制台获取。:腾讯云默认限流300次/秒,需注意控制发送频率。:将International参数设为1。:模板中的变量使用{1}、{2}格式。:实际使用需添加更完善的异常处理。:需提前在控制台申请并通过审核。
2025-07-15 12:11:20
898
原创 腾讯云短信实战: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
481
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅