自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(274)
  • 收藏
  • 关注

原创 Spring Boot 策略模式实战:优雅处理环节代码分发逻辑(含注解+默认策略)

这篇文章介绍了如何在Spring Boot中应用策略模式,以优雅地处理环节代码分发逻辑。策略模式是一种设计模式,用于将不同的算法封装成独立的策略类,并使它们可以互换使用,从而避免硬编码的条件判断逻辑。文章通过具体实例,展示了如何结合注解和默认策略来实现这一模式。通过注解配置不同的策略,可以动态选择和执行不同的业务处理环节,减少了代码中的复杂性和冗余,提升了代码的可维护性和扩展性。

2025-04-11 16:46:28 274

原创 Java集成企业微信API实现高效消息推送实战指南

这篇文章详细讲解了如何在 Java 项目中集成 企业微信 API,实现高效、稳定的企业消息推送功能。通过实际代码示例和完整配置指南,读者可以快速掌握从接口对接到消息发送的全过程。

2025-03-13 09:20:51 1310 2

原创 Java生成二维码(带头像/文字)完整实战,基于Hutool+ZXing

本文教你如何使用 Java + Hutool + ZXing 快速生成个性化二维码,支持在二维码中嵌入头像或添加文字说明,效果美观,适用于名片、宣传、邀请等场景。附完整代码,简单易用,开箱即用

2024-11-22 15:54:43 683

原创 Spring Boot 调用 SOAP 接口全流程详解(含多服务配置)

本篇文章详解如何在Spring Boot项目中调用SOAP接口,从依赖引入、wsimport生成客户端代码到多服务配置与实际调用,一文搞懂SOAP集成实践,支持JSON参数传递与多WebServiceTemplate场景,适用于政务、教育等传统系统对接需求。

2024-10-30 11:13:29 920 4

原创 内网穿透HTTPS工具:ngrok 使用指南

本文将介绍如何使用 ngrok 工具实现内网穿透,特别是如何通过该工具实现 HTTPS 内网穿透。ngrok 是一个非常便捷的工具,适用于需要外网访问内网服务的场景

2024-09-13 09:57:51 336

原创 Java实现导出图片到Excel

在实际开发中,经常会遇到将数据及图片导出为 Excel 报表的需求。本文将以场景为例,演示如何使用 Apache POI 将图片插入 Excel 表格中,并通过浏览器导出下载。

2024-09-02 12:42:29 1232

原创 Oracle中逗号分隔字段如何查询关联名称

在Oracle数据库开发中,我们常常遇到字段中存储了以逗号分隔的多选项值,例如复选框结果。为了提升用户体验,通常需要将这些代码转换为对应的人类可读名称。本文以处理结果字段为例,使用 LISTAGG 聚合函数结合 LIKE 模糊匹配的方式,实现将逗号分隔的代码值高效转换为名称集合的功能。适用于数据报表展示、多选字段名称解析等典型场景,具有极强的实用性和通用性。

2024-08-12 16:38:37 836 1

原创 Java线程池实现高效可控的定时任务调度器

在日常开发中,常常需要根据指定时间执行某项任务,比如定时提醒、延迟推送、任务重试等。如果直接使用 Timer 或 Thread.sleep() 往往不够灵活或存在可维护性差的问题。本篇将介绍如何通过 Java 的 ScheduledExecutorService 实现一个支持动态添加、取消的定时调度器,并附带任务唯一标识 taskId 管理机制,可灵活地控制任务生命周期,线程安全又高效,适用于多种企业场景!

2024-08-02 17:04:30 328

原创 Java中将字节数组转为Blob对象(不连接数据库的实用技巧)

在某些业务场景中,我们可能需要将图片、PDF 等二进制内容临时封装为 BLOB 对象以便后续传输或格式兼容操作,但此时我们并不打算连接数据库,或者只是单纯为了和某些接口或类进行交互。本文将介绍如何使用 javax.sql.rowset.serial.SerialBlob 类,轻松实现字节数组向 BLOB 对象的转换,无需依赖数据库连接

2024-07-16 12:49:52 519

原创 Spring Boot中封装RestTemplate,实现简洁优雅的HTTP请求调用

在微服务或第三方系统集成中,HTTP请求成为常见的交互方式。是 Spring 提供的同步 HTTP 客户端,虽然被 WebClient 所继承,但在大多数传统应用中仍然广泛使用。本文将从 RestTemplate 的 Bean 配置入手,构建一个高复用的工具类,并支持常见的 GET、POST 请求,增强异常日志能力,提升开发效率。

2024-06-21 10:43:38 488 1

原创 MyBatis中防止IN参数过多导致SQL报错的优雅解决方案

在使用 MyBatis 进行批量查询时,IN 条件常用于匹配多个参数,但由于数据库(如 Oracle)对 IN 中参数数量有限制(通常为 1000 个),当参数过多时容易导致 SQL 报错。本文提供了一种优雅的解决方案,通过 MyBatis 的 <foreach> 标签结合逻辑判断,实现自动拆分 IN 条件,规避参数上限问题。同时,还介绍了如何将这段逻辑抽取为通用 SQL 片段以复用,提高项目的可维护性和稳定性,适用于所有大批量 ID 查询的场景。

2024-06-20 17:18:06 275

原创 React 实现可拖拽、可折叠、可滚动的浮动窗口组件

这是一个基于 React 和 Ant Design 实现的浮动窗口组件,支持窗口拖拽、内容滚动和一键折叠功能,,结构清晰、易于复用,仅需传入参数即可在页面中调用使用。

2024-06-20 16:59:55 1356 1

原创 如何使用Redisson实现分布式锁

这篇博客介绍了如何在Spring Boot项目中使用Redisson实现分布式锁。首先,通过RedissonConfig配置类连接Redis服务器,并在RedissonDistributedLock类中实现了分布式锁的获取和释放。博客详细说明了如何使用tryLock方法获取锁,并设置锁的过期时间和等待时间,同时提供了releaseLock方法确保锁被正确释放。最后,还对Redisson配置进行了优化,以提高连接的稳定性和性能,适用于高并发环境。

2024-06-11 10:37:12 474 3

原创 优化Oracle数据库性能:物化视图的自动与手动刷新策略

本文介绍了如何在Oracle数据库中使用物化视图(Materialized Views)来优化查询性能。物化视图通过预计算并存储查询结果,可以显著加快复杂查询的执行速度。文章详细讲解了如何创建物化视图,并设置自动刷新策略以确保数据的实时性。此外,还提供了手动刷新物化视图的方法。通过合理配置自动与手动刷新策略,可以在提升性能的同时确保数据的准确性。

2024-05-10 15:38:14 1784

原创 Oracle中处理CLOB字段的优雅方式:MyBatis配合工具类实现无损转换

使用 MyBatis 查询 Oracle 的 CLOB 字段时,通过 Map 接收和工具类转换的方式,可以优雅地将 CLOB 类型转换为字符串,确保数据不丢失并便于前端展示。

2024-04-26 17:55:48 595 2

转载 windows上安装EMQX安装及配置使用教程

原文链接:https://blog.csdn.net/weixin_44462773/article/details/135056325。可能需要根据您的实际情况进行调整。此外,确保您已经正确安装了emqx,并且它的可执行文件位于bin路径下。3. 将这个.bat文件放入开机自启文件夹中。在Windows 10中,这个文件夹通常位于。提示ChangeServiceConfig 成功,则说明服务安装成功。提示:win10下emqx启动如果报错。内容来源:csdn.net。请注意,上述步骤中的。

2024-04-26 10:03:12 10958 2

原创 Eureka中删除失效服务的两种常用方式(附命令示例)

这篇博客介绍了在使用 Spring Cloud Eureka 时,如何通过两种方式手动删除或下线失效的服务实例。方式一是使用 DELETE 请求直接从 Eureka 注册中心移除指定服务,方式二则是将服务状态修改为 OUT_OF_SERVICE,避免其被继续调用。文中详细讲解了每种方式的适用场景与命令格式,帮助开发者更高效地进行服务治理与维护。

2024-04-18 11:31:10 680 1

原创 Spring Boot 集成 MQTT 实战教程 | 复制即用

本教程详解如何在 Spring Boot 项目中快速集成 MQTT 消息协议,涵盖依赖配置、客户端连接、消息发布与订阅、回调处理及断线重连机制。文章通过完整的 Java 示例代码演示如何封装 MqttPushClient 和 MqttSubClient 工具类,帮助开发者实现高效稳定的 MQTT 消息通信。适用于物联网、消息推送、设备联动等应用场景,代码可直接复制粘贴上手,快速落地使用。

2024-03-20 13:17:41 1985 2

原创 通用导出工具类(支持复杂 Excel/Word 模板)

本文介绍了如何通过Java工具类实现复杂的Excel和Word文件导出功能。重点讲解了如何使用模板渲染引擎(如Velocity、EasyPoi)将数据源填充到Excel和Word模板中,并支持单文件和多文件导出。文章详细展示了工具类的设计思想,包括模板渲染、导出过程控制、文件压缩和下载响应等功能模块。此外,还对如何通过自定义类实现文件导出后的操作(如文件命名和下载)进行了说明,旨在为开发人员提供一个灵活、易扩展的解决方案,满足企业级数据导出需求。

2024-03-12 17:06:56 700 1

原创 org.apache.poi.hssf.usermodel.HSSFCellStyle cannot be cast to org.apache.poi.xssf.usermodel.XSSFCell

在开发过程中,使用 Apache POI 库处理 Excel 文件时,经常会遇到 "HSSFCellStyle cannot be cast to XSSFCell" 错误。这个错误通常是因为代码中混淆了不同格式的 Excel 文件(.xls 和 .xlsx)。本文将详细分析此错误产生的原因,并提供解决方案,帮助开发者避免类似的错误,提高工作效率。

2024-01-10 17:29:48 1701

原创 Spring Boot 简单使用 RabbitMQ 消息队列

在分布式系统中,消息队列(MQ)是一个非常重要的工具,常用于解耦、异步处理等。本文将展示如何在 Spring Boot 项目中集成和使用 RabbitMQ,简洁明了地演示消息的发送、接收以及监听。

2024-01-03 15:02:23 497

原创 MyBatis 批量新增工具类实现

本文介绍了如何通过 MyBatis 批量提交数据的工具类 MyBatisBatchExecutorUtil 来提高数据库操作的效率。通过使用 SqlSessionFactory 和 ExecutorType.BATCH,该工具类能够按批次提交数据,避免一次性提交过多数据带来的性能问题。文章中详细阐述了工具类的实现,包括如何进行批量插入、异常处理和性能优化。通过合理分批提交数据,能够有效提升系统在处理大量数据时的性能,是大数据量操作时不可或缺的利器。

2023-12-25 16:14:37 475

原创 Oracle 简单高效删除重复记录

在日常数据库维护中,重复数据常常影响数据准确性和程序逻辑。本文介绍了一种在 Oracle 中使用 ROWID 和 GROUP BY 的方式,快速、安全地删除重复记录,仅保留每组重复项中的一条。适用于数据清洗、表去重等常见场景,SQL 简洁、性能优秀,并附有实用示例和注意事项。

2023-11-13 17:40:00 440

原创 使用 RANK() OVER (PARTITION BY) 实现 SQL 数据分组排名

在数据分析与业务处理中,经常会遇到“某组内的前几名”这种需求。本文将介绍如何使用 SQL 的窗口函数 RANK() 配合 OVER (PARTITION BY ...) 子句,实现分组内排名,并通过实战例子加深理解。

2023-11-10 13:54:25 6877

原创 Hystrix 报错:HystrixTimeoutException 及其解决方案

本文深入解析了 com.netflix.hystrix.exception.HystrixTimeoutException 异常的成因,即 Hystrix 为防止系统雪崩所触发的服务超时熔断机制。通过配置 timeoutInMilliseconds 参数,可以灵活调整请求的超时时长,以适应不同业务需求。同时结合具体配置示例,演示如何避免误触熔断并保证系统稳定性。适合正在使用 Spring Cloud 和 Hystrix 构建微服务的开发者参考。

2023-09-18 13:59:14 391

原创 Spring Cloud 报错:ThreadPoolExecutor [Running, pool size = 10, active threads = 10] 的解决方案

在使用 Spring Cloud 和 Hystrix 开发微服务时,常见的线程池拒绝异常(如 RejectedExecutionException)通常是由于 Hystrix 默认线程池配置过小所致。本文详细分析了报错原因,并通过配置 Hystrix 的 coreSize、maxQueueSize 和 queueSizeRejectionThreshold 参数,成功解决线程池满载导致的任务拒绝问题。文章还提供了实用的配置建议和注意事项,帮助开发者构建更稳定的高并发系统。

2023-09-18 10:53:54 929

原创 解决 FeignClient 被 FallBack 后无错误日志打印的问题

在使用 Spring Cloud Feign 进行服务调用时,如果接口调用失败,会自动进入 fallback 降级逻辑。但默认的 fallback 实现无法获取具体异常信息,导致日志缺失,问题难以排查。本文通过使用 FallbackFactory 对降级逻辑进行改造,实现了异常信息的完整捕获和日志记录,帮助开发者在微服务架构中更高效地定位问题。附带示例代码,简单易用,推荐收藏!

2023-09-18 10:43:17 442

原创 Java多线程中的 Semaphore 信号量:实现资源并发控制

本文介绍了 Java 中的 Semaphore 信号量机制,讲解了如何创建、获取和释放许可证,使用 Semaphore 控制并发线程访问有限资源的方式。通过一个简单示例,展示了如何在实际项目中使用 Semaphore 管理资源并发,避免过多线程同时访问,确保资源的安全和高效利用。

2023-09-18 10:37:47 112

原创 如何在 Spring Boot 程序中动态调整定时任务的 Cron 表达式

本文介绍了如何在 Spring Boot 程序中动态调整定时任务的 Cron 表达式。通过实现 SchedulingConfigurer 接口和使用 @Value 注解,定时任务的 Cron 表达式可以从配置文件中动态获取,并且支持与配置中心(如 Nacos)集成,实现实时调整定时任务的执行时间。

2023-09-18 09:55:56 260

原创 如何在 IDEA 中配置自定义注释模板

本文介绍了如何在 IntelliJ IDEA 中配置和使用自定义注释模板,帮助开发者快速插入多行注释、方法注释和作者信息。通过实时模板和 Groovy 脚本,开发者可以实现自动化注释生成,从而提高代码编写效率和注释规范性。

2023-09-18 09:29:25 234

原创 封装统一响应格式与消息枚举类:提升API开发效率

本文介绍了如何封装统一响应结果类 ResponseResult 和消息枚举类 AppHttpCodeEnum,以实现接口返回的标准化。通过这种方式,我们能够统一管理状态码、消息和数据,简化接口开发和维护。

2023-09-18 09:06:39 116

原创 Redis工具类优化(Spring Boot)

本文介绍了如何在Spring Boot项目中封装一个高效的Redis工具类,涵盖了Redis常用操作的实现,包括字符串、哈希、集合、列表等数据结构的操作。通过自定义配置和工具类的封装,提升了代码的可维护性和开发效率。文章中详细讲解了RedisTemplate的使用,如何通过Redis工具类简化缓存管理,并提供了示例代码,帮助开发者更好地理解和应用Redis缓存。

2023-09-18 09:01:31 93

原创 Spring Boot实现对超大文件进行异步压缩下载

本文介绍了如何使用 Spring Boot 实现一个异步文件压缩下载功能,通过 StreamingResponseBody 和 ZipOutputStream 对文件进行逐块传输和压缩,解决了大文件下载的性能问题。代码示例展示了如何封装下载逻辑,用户可以通过访问 API 下载学生作品的压缩包。

2023-09-17 09:59:39 2494

原创 Spring Boot 实战:优雅获取请求头信息(封装工具类)

在Spring Boot开发中,从请求头获取参数是常见需求。为了避免控制器代码臃肿,可以封装一个工具类统一获取请求头字段,并支持子线程访问上下文,从而提升代码整洁度和复用性。

2023-09-13 16:25:05 142

原创 事务回滚警告:Transaction rolled back because it has been marked as rollback-only

本文详细讲解了 Spring 中常见的事务回滚异常 Transaction rolled back because it has been marked as rollback-only 的含义、成因、代码复现场景和解决方案,帮助开发者正确处理嵌套事务中的异常问题,提升系统稳定性。

2023-08-09 11:35:55 327 1

原创 Oracle 数据库中表被锁问题的解决方案与实战方法

在实际开发和运维中,我们经常会遇到数据库表被锁的情况。这不仅会造成 SQL 执行阻塞,还可能严重影响系统的整体性能和可用性。本文将带你一步步了解 表被锁的根因、识别方式、解锁手段,并附上实用 SQL 查询脚本,助你高效排查与解决问题。

2023-08-09 09:55:49 4155

原创 【Java并发编程】Future 与 CompletableFuture 实战详解(高并发推荐)

本文系统讲解了 Java 并发编程中两个重要的异步工具 —— Future 和 CompletableFuture。从基本用法、核心方法、优缺点对比,到实际代码示例与性能测试,全面展示它们在异步任务处理、任务组合、异常链路管理等方面的应用场景与差异。特别是对 CompletableFuture 的链式调用、组合处理、异常补偿等强大功能进行了深入剖析,适合中高级 Java 工程师快速掌握现代并发工具的实战技巧。

2023-08-08 16:42:44 281

原创 Java中RoundingMode枚举类的详细用法解析

本文全面介绍了 Java 中 RoundingMode 枚举类的 8 种舍入模式,包括每种模式的含义、应用场景及代码示例。通过结合 BigDecimal 的实际用法,读者可以清晰理解如何在不同业务场景中选择合适的舍入策略,从而实现精确的数值处理,特别适用于金融、计量等对精度要求较高的领域。

2023-07-04 09:40:45 2825 1

原创 探索 Java 中的 NaN 和 Infinity:数字的边界与无限

在 Java 中,NaN(Not-a-Number)和 Infinity(无穷大)是浮点数类型(float 和 double)的特殊值,分别用于表示无效的数值和超出表示范围的无限大数值。本文详细解析了 NaN 和 Infinity 的概念、使用场景以及如何在代码中处理它们。通过对基本类型和包装类型的对比示例,我们帮助开发者更好地理解这两个特殊值的行为与应用,尤其是在涉及计算精度、错误处理以及溢出的情况下。

2023-05-17 17:09:48 2433 10

原创 Fortify漏洞:Portability Flaw: Locale Dependent Comparison

这个漏洞会导致程序在不同地区设置下产生不一致的结果,因为不同地区使用不同的字符排序规则、大小写敏感性和其他比较规则。举例来说,某些地区会将特定的字符视为不同的字符,而其他地区则将其视为相同。:为了防止出现此问题,请始终确保指定默认区域设置,或者指定可以接受这些字符(如toLowerCase()并带有 API 的区域设置。方法可以避免由于地区设置相关的字符排序规则而导致的比较结果不一致的问题。某些地区会将特定的字符视为不同的字符,而其他地区则将其视为相同。:在未指定区域设置时,可能会发现意外得可移植性问题。

2023-05-17 15:57:10 755 4

空空如也

空空如也

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

TA关注的人

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