- 博客(297)
- 收藏
- 关注
原创 用Caffeine和自定义注解+AOP优雅实现本地防抖接口限流
在实际项目开发中,接口高频触发和重复提交问题常导致服务压力增大和数据冗余。为解决这些问题,提出了基于Caffeine缓存库、自定义注解和AOP的本地限流防抖方案。该方案通过自定义注解标记需防抖的接口,利用AOP切面拦截请求,以唯一标识为key查询Caffeine缓存,若在设定时间内已处理则拦截请求,否则执行业务逻辑并记录处理时间。此方案无侵入、代码简洁、扩展性强,适用于单机环境下的接口防抖和限流,但不适用于分布式场景。通过合理配置Caffeine缓存和自定义注解,可有效提升系统性能和稳定性。
2025-05-19 21:30:00
1043
原创 Java网络编程演进:从NIO到Netty的UDP实践全解析
通过对比NIO和Netty的实现,我们可以清楚地看到Netty在简化网络编程、提高开发效率和性能方面的优势。Netty不仅封装了复杂的NIO操作,还提供了丰富的功能和优化措施,使得开发高性能网络应用变得更加容易。随着技术的不断发展,保持学习和实践的态度,将帮助我们在网络编程领域不断提升。无论是使用NIO还是Netty,核心都是要理解网络编程的基本原理。
2025-03-30 23:46:14
2075
原创 Java四大常用JSON解析性能对比:Hutool、Fastjson2、Gson与Jackson测试
JSON 是现代软件开发中常用的数据交换格式,尤其在微服务和前后端分离的架构中更是必不可少。进行性能测试和对比分析,通过实测 20 万条数据解析,揭示各库在批量和逐条处理中的表现。本文将对 Java 中四大主流 JSON 解析库——仅供参考 仅供参考 仅供参考!
2025-01-04 17:31:01
8043
1
原创 使用 MinIO 和 KKFileView 实现在线文件预览功能
在项目开发中,文件的在线预览是常见的需求,尤其是对 PDF、Word、Excel 等格式的文件进行无客户端依赖的直接查看。本文将介绍如何通过 MinIO 和 KKFileView 搭建在线文件预览服务,并通过 docker-compose 一键部署。
2024-12-07 23:45:00
10130
1
原创 Redis 常用数据类型插入性能对比:循环插入 vs. 批量插入
测试过程中,我们将模拟插入 1 万 / 10 万条数据,并记录执行时间。以下是常见的 Redis 数据类型及其插入方法。通过这些优化方法,Redis 的插入性能可以得到显著提升,在高并发场景下尤为重要。以下测试结果仅供参考,真实环境请多测试!
2024-11-24 20:00:00
8493
原创 使用 Spring Boot 搭建 WebSocket 服务器实现多客户端连接
WebSocket 是 HTML5 的一种协议,提供了客户端和服务器之间的全双工通信。通过 WebSocket,客户端可以与服务器进行持续连接,不用反复建立 HTTP 请求,从而降低延迟,提升通信效率。通过以上代码示例,我们可以实现一个简单的 WebSocket 服务端,支持多客户端连接和消息广播。此 WebSocket 服务端适用于需要实时消息推送的应用场景,比如聊天室、实时通知系统等。
2024-11-04 22:15:00
10138
3
原创 SpringBoot项目请求不中断动态更新代码
在开发中,有时候热部署是一项至关重要的功能,它可以在请求不中断的情况下下更新代码。这种方式不仅提高了开发效率,还能加速测试和调试过程。本文将详细介绍如何在 Spring Boot 项目在Linux系统中实现热部署,特别关注优雅关闭功能的实现。1. 代码概述我们实现了一个简单的 Spring Boot 应用程序,它可以自动检测端口是否被占用,并在必要时切换到备用端口,然后再将目标端口程序关闭再将备用端口切换为目标端口。具体功能包括:检查默认端口(8080)是否被占用。如果被占用,自动切换到备用端口
2024-09-29 20:51:52
10735
原创 Shell 脚本管理 Java 应用程序的高效方法
在软件开发中,管理和监控 Java 应用程序的运行状态变得愈加重要。本文将分享一个自用的简单但高效的 Shell 脚本,帮助轻松管理 JAR 包的启动、停止和日志管理。脚本功能概述本脚本提供以下主要功能:检查 JAR 包的运行状态启动尚未运行的 JAR 包停止所有运行中的 JAR 包删除 10 天之前的旧日志,并压缩近期日志
2024-09-26 23:26:32
3166
原创 MyBatis 动态 SQL 使用指南
MyBatis 的动态 SQL 特性为开发者提供了强大的灵活性,使得构建复杂查询变得简单。通过合理使用动态 SQL,可以提高代码的可读性和维护性。本文介绍了常见的动态 SQL 标签和用法,包括 where、foreach、if、choose、trim 和 bind。
2024-09-25 17:57:47
2944
原创 Java对象拷贝的浅与深:如何选择?
在日常开发中,我们经常需要将一个对象的属性复制到另一个对象中。无论是使用第三方工具类还是自己手动实现,都会涉及到浅拷贝和深拷贝的问题。本文将深入讨论浅拷贝的潜在风险,并给出几种实现深拷贝的方式,帮助大家避免潜在的坑。
2024-09-05 18:30:00
10579
原创 Java解析气象热力图NC文件:完整实现与代码解析
在气象和环境科学领域,NC(NetCDF)文件是一种广泛使用的数据格式,通常用于存储多维科学数据。在这篇博客中,我们将介绍如何使用Java来解析NC文件,并将提取的数据转换为JSON格式。本文将逐步解析代码,帮助你理解每一个关键步骤。
2024-08-08 22:16:05
6631
1
原创 使用 Java 8 的 BiPredicate 和 Stream API 进行数据过滤和分组
在本文中,我们将学习如何使用 Java 8 的 BiPredicate 和 Stream API 来进行数据过滤和分组。我们将通过一个具体的例子来演示这一过程,例子中包含学生成绩的筛选和基于考试时间段的分组。
2024-08-01 23:31:18
5128
原创 在Spring Boot项目中通过自定义注解实现多数据源以及主备数据库切换
在现代的企业应用开发中,使用多数据源是一个常见的需求。尤其在关键应用中,设置主备数据库可以提高系统的可靠性和可用性。在这篇博客中,我将展示如何在Spring Boot项目中通过自定义注解实现多数据源以及主备数据库切换。
2024-05-24 22:55:02
20139
原创 Spring Boot项目中使用MyBatis连接达梦数据库6
在开发中,使用Spring Boot框架结合MyBatis来操作数据库是一种常见的做法。本篇博客将介绍如何在Spring Boot项目中配置MyBatis来连接达梦数据库6,并提供一个简单的示例供参考。(达梦六不仅分表还分模式.) 我拿SYSTEM表的LPS模式下面Student表做案例。
2024-03-22 23:04:20
8708
2
原创 深入理解Java泛型:灵活、安全、可重用的编程利器
Java泛型是一项强大的编程特性,为程序员提供了一种灵活、类型安全、可重用的编码方式。通过泛型,我们能够编写更加通用、适应多种数据类型的代码,从而提高了代码的灵活性和可维护性。在这篇博客中,我们将深入探讨Java泛型的各个方面,并通过具体的例子来展示其用法和优势。
2024-03-10 01:22:21
10399
原创 Docker安装配置OnlyOffice
OnlyOffice 是一款强大的办公套件,你可以通过 Docker 轻松安装和部署它。本文将指导你完成安装过程。
2024-01-21 01:09:23
7157
1
原创 Spring Boot应用启动时自动执行代码的五种方式
Spring Boot为开发者提供了多种方式在应用启动时执行自定义代码,这些方式包括注解、接口实现和事件监听器。在本篇博客中,我们将探讨一些常见的方法,以及如何利用它们在应用启动时执行初始化逻辑。
2024-01-07 22:13:49
4234
1
原创 在Docker上使用Portainer轻松管理容器 - 安装与配置指南
Docker的流行使得容器化技术变得更加普及,但在命令行中管理容器可能对一些用户来说有一定的学习曲线。为了简化这一过程,可视化管理工具变得尤为重要。其中,Portainer是一个强大而直观的工具,能够提供友好的图形用户界面(GUI)来管理Docker容器。
2024-01-02 11:28:11
2889
原创 在 GitHub 上设置 SSH 公钥连接
GitHub 提供了 SSH 密钥的认证方式,这使得与您的 GitHub 仓库进行安全通信更加方便。通过设置 SSH 公钥,您可以在不需要输入用户名和密码的情况下与 GitHub 仓库进行通信。以下是如何在 GitHub 上设置 SSH 公钥的步骤
2023-12-28 11:25:34
2688
原创 Spring Boot 项目中读取 YAML 文件中的数组、集合和 HashMap
在 Spring Boot 项目中,我们经常使用 YAML 文件来配置应用程序的属性。在这篇博客中,我将模拟如何在 Java 的 Spring Boot 项目中读取 YAML 文件中的数组、集合和 HashMap。
2023-11-26 15:24:23
6322
1
原创 MySQL 8 配置文件详解与最佳实践
MySQL 8 是一款强大的关系型数据库管理系统,通过适当的配置文件设置,可以充分发挥其性能潜力。在这篇博客中,我们将深入探究MySQL 8 常用的配置文件,并提供一些建议,帮助您优化数据库性能。
2023-11-23 23:38:05
5200
原创 在 Docker 中安装 Oracle 数据库
在这篇博客中,我们将探讨如何使用 Docker 容器轻松地安装和运行 Oracle 数据库。Docker 提供了一种简便的方式,通过容器化,我们可以在任何支持 Docker 的环境中快速部署 Oracle 数据库。
2023-11-16 19:30:00
32058
17
原创 Linux系统上搭建高可用Kafka集群(使用自带的zookeeper)
Apache Kafka 是一个高吞吐量的分布式消息系统,被广泛应用于大规模数据处理和实时数据管道中。本文将介绍在CentOS操作系统上搭建Kafka集群的过程,以便于构建可靠的消息处理平台。
2023-11-11 16:16:50
21154
原创 如何将 XxlJob 集成达梦数据库
在某些情况下,你的项目可能会面临数据库选择的特殊要求,随着国产化的不断推进,达梦数据库是一个常见的选择。本篇博客将教你如何解决 XxlJob 与达梦数据库之间的 SQL 兼容性问题,以便你的任务调度系统能够在这个数据库中正常运行。
2023-11-05 14:10:41
7131
2
原创 Java使用Hutool工具包将汉字转换成汉语拼音
在Java开发中,有时候我们需要将汉字转换成拼音,以方便进行数据处理、搜索和排序等操作。本文将介绍如何使用Hutool和Pinyin4j这两个Java库来实现汉字转拼音的功能。
2023-10-10 00:13:14
6744
原创 虚拟机如何扩容麒麟操作系统的根文件系统
虚拟机如何扩容麒麟操作系统的根文件系统 如何扩容麒麟服务器的根文件系统,包括准备磁盘空间、扩容逻辑卷和扩容文件系统等步骤。通过这些步骤,可以成功地解决了根文件系统空间不足的问题,确保了服务器的正常运行。
2023-09-20 17:47:01
8924
原创 Windows上安装和配置Apache Kafka
Apache Kafka是一个开源的流式平台,用于处理实时数据流。它可以用于各种用途,包括日志聚合、事件处理、监控等。本文将向您展示如何在Windows操作系统上安装和配置Apache Kafka。
2023-09-10 23:53:19
4844
1
原创 Java调用高德地图API根据经纬度获取区县
通过以上代码,你可以轻松地使用 Java 调用高德地图 API 来获取经纬度对应的区县信息。这对于许多需要根据地理位置信息获取相关数据的场景是非常有用的。
2023-08-24 15:35:10
2748
1
原创 Java调用高德地图API根据详细地址获取经纬度
使用JSONObject类解析API返回的JSON数据,从中提取经纬度信息。确保您在代码中替换YOUR_APP_KEY为您实际的应用key。
2023-08-22 21:33:42
3178
原创 MyBatis-Plus 和达梦数据库实现高效数据持久化
本文介绍了如何结合 MyBatis-Plus 和达梦数据库来实现高效的数据持久化操作。通过配置数据源、创建实体类、Mapper 接口和 Service 层,我们可以轻松地完成增删改查等数据库操作。MyBatis-Plus 的强大功能和简便的操作方式,大大提高了开发效率,使得数据持久化变得更加轻松愉快。
2023-08-02 22:23:47
6556
原创 IDEA连接达梦数据库
在 IntelliJ IDEA 中连接达梦数据库,可以按照以下步骤进行操作:打开 IntelliJ IDEA,进入项目。在顶部菜单栏选择 "View" -> "Tool Windows" -> "Database",打开数据库工具窗口。在数据库工具窗口中,点击右上角的 "+" 图标,选择 "Data Source" -> "DmDataSource"。在弹出的对话框中,填写以下信息:General:Name: 数据库连接的名称,自定义命名。Database:Host: 数据库服务器的主机名
2023-07-15 22:39:11
10024
4
原创 Windows安装 PostgreSQL数据库并进行简单数据操作
在开发和管理数据库应用程序时,选择合适的数据库管理系统是至关重要的。PostgreSQL 是一个强大且广受欢迎的开源关系型数据库管理系统,它具有稳定性、可靠性和丰富的功能。本文将介绍如何在 Windows 操作系统上下载、安装 PostgreSQL,并快速上手进行数据的增删改查操作。
2023-07-06 17:58:52
7158
2
原创 MyBatis 执行流程详解及示例代码
MyBatis 是一个优秀的持久层框架,它简化了数据库操作的开发过程。本文将详细介绍 MyBatis 的执行流程,并提供相应的示例代码,帮助读者更好地理解和应用 MyBatis。
2023-06-29 00:20:46
1979
原创 Spring 定时任务@Scheduled 注解中的 Cron 表达式
Spring 框架提供了强大的定时任务功能,通过 @Scheduled 注解可以方便地定义和管理定时任务。其中,Cron 表达式作为定时任务触发的时间表达式,扮演着重要的角色。本文将详细介绍和讲解 Cron 表达式的语法和常见用法,帮助读者更好地理解和使用 Spring 的定时任务功能。
2023-06-27 17:50:01
39458
6
原创 深入理解Redis的AOF和RDB持久化机制
Redis的AOF(Append-Only File)和RDB(Redis Database)是两种常见的持久化机制,用于将内存中的数据保存到磁盘上,确保数据在Redis重新启动时的持久性。本文将深入介绍AOF和RDB的原理和使用,帮助读者更好地理解这两种持久化方式。
2023-06-21 17:31:14
1186
3
原创 Lombok开启链式编程@Accessors注解
@Accessors(chain = true) 是 Lombok 注解,用于启用链式编程。它的作用是为带有 @Data 注解的类自动生成链式调用方法。在你的实体类中,如果要启用链式编程,只需在类级别上添加 @Accessors(chain = true) 注解即可。修改后的实体类代码如下所示:
2023-06-17 08:15:00
4880
1
原创 EasyExcel实现execl导入导出
在实际开发中,处理 Excel 文件是一个常见的需求。EasyExcel 是一个基于 Java 的开源库,提供了简单易用的 API,可以方便地读取和写入 Excel 文件。本文将介绍如何使用 EasyExcel 实现 Excel 导入功能,以及一些相关的技巧和注意事项。
2023-06-16 22:10:56
16876
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人