自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Claude Code集成飞书 MCP 实施方案

本文档记录飞书 MCP 与 Claude Code 的集成实施方案,涵盖官方 MCP 和自定义 MCP 两种方案的安装部署、Claude Code 配置、用户身份认证及问题排查。通过 MCP 协议,用户可用自然语言让 AI 自动完成飞书文档的创建与编辑,实现企业协作平台的智能化集成。

2026-01-16 17:28:41 2524

原创 Apifox CLI + GitLab CI:接口自动化测试实施记录

本文详细记录了基于 Apifox CLI + GitLab CI 构建接口自动化测试流水线的完整实施过程。项目采用 Spring Boot 3.2.1 + Java 17 技术栈,通过 Docker 部署 GitLab Runner,将 API 测试无缝集成到 CI/CD 工作流中。文档涵盖四个核心阶段:GitLab Runner 部署配置、Apifox 测试场景创建(包含用户 CRUD 5 个接口的详细录入步骤、变量传递与断言设置)、本地 CLI 验证、以及 GitLab CI 流水线配置。

2026-01-15 22:24:14 1041

原创 IntelliJ IDEA 启动卡顿问题排查与解决

问题表现为 IDE 界面打开后持续无响应,编辑器显示加载转圈。排查过程中,首先分析系统 hang 报告发现主线程在内存分配时被 GC 阻塞;随后尝试更换 G1GC 收集器和清理缓存均无效;最终通过分析 idea.log 定位到两个根因:一是默认 2GB 堆内存不足(实际占用超 3GB),导致频繁触发 SerialGC 的 Stop-The-World;二是通义灵码插件在主线程执行网络请求超时。解决方案:将 -Xmx 从 2048m 增加到 4096m,并禁用通义灵码插件。

2026-01-13 10:42:20 628 2

原创 Docker 多架构镜像构建方案实施指南

本文档记录了 Docker 多架构镜像构建方案的完整实施过程。项目原有两个独立脚本分别构建 ARM 和 x86 镜像,管理成本高。新方案基于 Docker Buildx 实现一次构建同时生成双架构镜像,支持推送私有仓库或导出离线 tar 包。

2026-01-10 23:23:40 1096 1

原创 docker compose和docker-compose的区别

Docker Compose V2 是官方用 Go 重写的新一代容器编排工具,取代了基于 Python 的 V1 版本。命令从 docker-compose 变为 docker compose,作为 Docker CLI 的原生插件运行。V2 完全兼容 V1 的 compose 文件格式,迁移零成本。V1 已停止维护,建议尽快切换。

2026-01-10 13:16:42 702

原创 Docker & Docker Compose 安装方案

本文档提供了在Ubuntu 22.04 LTS系统上安装Docker和Docker Compose的详细方案。采用官方APT仓库安装,包含docker-ce、docker-ce-cli、containerd.io等核心组件。配置了生产级参数:overlay2存储驱动、日志轮转限制(100MB/文件)、开机自启等。安装步骤包括卸载旧版本、添加GPG密钥、设置APT仓库、安装组件、配置Daemon等。文档还提供了验证清单、常用命令和故障排查方法,确保安装后的正确运行。所有操作均通过命令行完成,适合系统管理员参考

2026-01-10 12:37:27 724

原创 Intellij idea 注释模版

IntelliJ /**+Enter 只能自动生成方法/字段注释,类注释要用 File and Code Templates 配置或 Live Template 手动触发。Live Template 变量必须是 $VAR$ 格式,才能启用 Edit Variables…;可用 date("yyyy-MM-dd") 等宏自动填时间。

2025-11-15 20:26:02 482

原创 this view is read-only (IntelliJ IDEA)

IntelliJ IDEA 大文件只读问题的核心原因是 IDE 的性能保护机制。解决方案的关键点:✅ 清除文件系统限制:权限、扩展属性、锁定标记✅ 定位正确的配置目录:确保修改当前运行版本的配置✅ 修改三个关键参数:智能感知、循环缓冲区、内容加载大小✅ 完全重启 IDEA:配置必须在重启后才能生效配置成功后,可以在 IDEA 中正常编辑最大 50MB 的文件。对于更大的文件或频繁操作数据库的场景,建议使用专业工具如 DataGrip、VS Code 或命令行工具。

2025-11-01 13:47:52 1287 2

原创 maven scope=provided || optional=true会打包到jar文件中吗?

Maven中的依赖`<scope>provided</scope>`和`<optional>true</optional>`是否会打包到最终的jar包中?

2025-09-03 09:08:24 970

原创 SSH 连接测试成功,但 git clone 却失败了?解密非标准端口的“坑”

本文记录了一次排查和解决 `git clone` 通过自定义 SSH 端口(10022)访问 Gogs 仓库时,即使配置了 SSH 密钥,依然反复提示输入密码的问题。

2025-08-02 13:09:19 731

原创 造轮子系列:从0到1打造生产级HTTP客户端,优雅封装OkHttp/HttpClient,支持异步、重试与文件操作

本文将介绍一款本人开发的高性能Spring Boot HTTP客户端Starter,它完美整合了OkHttp和Apache HttpClient。该项目旨在解决原生HTTP客户端以及RestTemplate在文件上传下载、异步请求、失败重试等场景下的复杂性,提供一个配置简单、功能强大的解决方案。

2025-06-13 22:22:02 802

原创 SQL导出Excel支持正则脱敏

一个基于Spring Boot的高性能SQL查询结果导出Excel工具,支持批量SQL执行、数据脱敏、并行处理等功能。

2025-06-08 15:59:38 1091

原创 大数据CSV导入MySQL

一个高性能的CSV文件导入MySQL数据库的Spring Boot工具,支持自动类型推断、动态建表、流式处理和批量导入。

2025-06-08 15:54:48 1156

原创 SeaweedFS S3 Spring Boot Starter

一个用于Spring Boot项目集成SeaweedFS S3协议的通用库,提供文件上传、下载、删除等操作。

2025-06-08 15:40:45 1619

原创 简单通俗理解IO多路复用原理

这种机制使得系统资源使用更加高效,特别是在大量连接但活跃连接较少的场景下(这正是 Redis 的典型使用场景)。在 Linux 系统中,每个网络连接都被抽象为一个文件描述符(fd)。

2025-03-22 15:40:00 509

原创 Java实现隐形水印:零宽度字符的艺术 |防盗必备

今天给大家分享一个超实用的Java技巧!用零宽度字符给文本添加隐形水印,Windows记事本打开完全看不见,太神奇了!这个技术真的超实用!#Java编程 #安全技术 #程序员 #技术分享 #编程技巧 #防盗技术。

2025-03-12 11:02:10 951

原创 设计模式-原型模式

简单来说,原型模式就是"复制"而不是"新建"!它通过复制一个已有对象来创建新对象,而不是通过new关键字实例化。当你需要创建大量相似对象时,这个模式简直是救星!不仅提高性能,还能简化创建过程,太赞了!✨。

2025-03-08 14:30:54 715

原创 设计模式-单例模式

Java 实现单例模式的方式主要有以下几种,每种方式都有其不同的优缺点。

2025-03-06 22:41:53 972

原创 什么时候需要 volatile?

可以阻止编译器和 CPU 对指令的重排序。如果某些变量的赋值顺序必须保持严格一致,并不是所有的多线程共享变量都需要。如果一个变量在多个线程间共享,并且。,所以在以下情况下,它是。如果两个线程同时执行。,它们可能会同时读取。如果某个变量在初始化后。如果变量的值需要进行。

2025-03-06 14:02:50 890

原创 软件架构设计7大原则

软件架构设计7大原则

2025-03-04 22:59:39 1276

原创 kubeadm_k8s_v1.31高可用部署教程

kubeadm部署高可用k8s集群,2mater+3worker+3etcd-ext模式。

2024-12-17 11:01:54 2576

原创 k8s集群安装keepalive+haproxy

keepalive+haproxy安装

2024-12-14 16:12:17 1409

原创 containerd安装

install containerd

2024-12-03 22:09:28 936

原创 connect-timeout、read-timeout、write-timeout区别

超时设置在网络请求中起着至关重要的作用,不同类型的超时(如 连接超时、读超时、写超时)分别对应请求的不同阶段。

2024-11-22 19:03:28 2635

原创 SpringBoot实现国密通信

有些 SSL/TLS 库会在握手时输出所使用的加密算法,检查 A 和 B 项目的启动日志或请求日志,有时可以找到所使用的具体加密算法信息。可以查看项目 B 的服务器证书,确保它确实是基于国密算法生成的(如 SM2 算法)。工具,或直接使用专门的工具,例如一些企业提供的国密证书生成工具。如果服务器证书使用的是 SM2,则通信时双方会使用国密的公私钥来加解密数据。为了使用国密算法,通常需要使用一些支持国密算法的工具来生成证书。在项目 B 中可以使用调试代码来确认使用的密钥对。字段,确保它是国密算法(例如。

2024-11-01 15:02:50 2742 5

原创 为什么TCP(TIME_WAIT)2倍MSL

MSL(最大报文段生存时间)是TCP协议中定义的一个常量,表示TCP报文在网络中存活的最长时间。等待2倍MSL的原因是为了给报文提供足够的时间消失或确认。第一个MSL:等待网络中的FIN和ACK报文到达对方,确保双方完成连接关闭。第二个MSL:等待可能在网络中滞留的所有旧报文完全失效,避免与未来的新连接混淆。TIME_WAIT状态在TCP协议中扮演了确保数据完整性和网络可靠性的角色,通过2倍MSL时间的等待机制,防止ACK丢失以及旧报文干扰新连接。

2024-11-01 11:27:45 1052

原创 SpringBoot开启server:compression:enabled(Illegal character ((CTRL-CHAR, code 31)))

的形式发送给客户端。如果客户端没有正确解压缩这些数据,可能会导致解析失败,因为客户端会尝试将压缩的字节流当作普通文本来读取,结果出现序列化异常。即当响应内容的大小达到或超过 1024 字节时,服务器会对该响应内容进行压缩;如果内容小于 1024 字节,则不会启用压缩。通过上述调整,您可以避免由于压缩导致的客户端解析错误。最优方案是确保客户端正确处理 GZIP 响应,避免禁用压缩带来的性能影响。可以优化服务器性能,使压缩只应用于较大的响应内容。开启压缩后,服务器会将响应数据以。

2024-10-31 17:56:13 1018

原创 Mybatisplus多表关联分页查询有多种实现方式

这是最常用的方式,通过自定义 SQL 查询可以实现较复杂的关联查询,结合 MyBatis-Plus 的IPage接口,可以实现分页效果。User和Order,我们想查询用户及其对应的订单列表。@Data@Data在UserMapper@DataUserMapper实现方式优点适用场景XML 自定义 SQL灵活性高,可实现复杂的关联查询复杂 SQL 关联查询Wrapper 自定义 SQL灵活性高,支持简单关联查询简单的多表关联查询使用 DTO 与自定义 SQL。

2024-10-29 11:56:11 4607

原创 Received fatal alert: handshake_failure

这个错误信息表明在 SSL/TLS 握手过程中出现了问题,导致握手失败。通过以上具体做法,你可以更有效地排查并解决 SSL/TLS 握手失败的问题。表示在尝试建立安全连接时,服务器或客户端拒绝了握手。通过上述步骤,你可以逐步诊断并解决这个握手失败的问题。

2024-10-24 10:21:33 4891

原创 kubeadm部署k8s_V1.31集群教程(保证成功)

kubeadm部署k8s_V1.31集群教程(保证成功😄)

2024-09-29 17:36:11 7081 1

原创 Openfeign动态设置Headers

创建一个实现接口的拦截器类,该类将负责在请求发送之前添加或修改请求头,并添加签名参数。注意:这个类是放在客户端实现的。// 获取所有请求参数(包括URL和Body中的参数) Map < String , String > params = new HashMap < >();// URL中的参数 if(template . queries()!= null &&!} });

2024-07-24 14:02:23 1820

原创 隐私计算模型理解

一个电子商务网站希望通过机器学习模型来为用户提供个性化商品推荐,以提高用户满意度和销售额。该过程包括模型训练、模型生成、模型部署、推理和预测。通过这个案例,我们展示了一个从模型训练到推理和预测的完整流程。该过程包括数据准备、模型训练、模型保存、模型部署、实时推理和结果分析。通过这些步骤,可以构建一个高效的推荐系统,为用户提供个性化的购物体验。

2024-07-19 11:01:43 637

原创 深入理解Redis Hash数据类型

💡 包含键值对的无序散列表。value 只能是字符串,不能嵌套其他类型。同样是存储字符串,Hash 与 String 的主要区别?1、把所有相关的值聚集到一个 key 中,节省内存空间2、只使用一个 key,减少 key 冲突3、当需要批量获取值的时候,只需要使用一个命令,减少内存/IO/CPU 的消耗Hash 不适合的场景:1、Field 不能单独设置过期时间2、没有 bit 操作3、需要考虑数据量分布的问题(value 值非常大的时候,无法分布到多个节点)hashtable存

2024-06-30 14:33:58 927

原创 深入理解Redis String数据类型

Redis 中字符串的实现。在 3.2 以后的版本中,SDS 又有多种结构(sds.h):sdshdr5、sdshdr8、sdshdr16、sdshdr32、sdshdr64,用于存储不同的长度的字符串,分别代表2^5=32byte。

2024-06-29 18:51:52 1092

原创 揭开HashMap扩容、存储真实面纱

最近的距离相处HashMap,揭开HashMap扩容、存储真实面纱。

2024-05-18 19:14:00 789

原创 MySQL5.7 恢复delete数据

精准恢复MySQL DELETE操作的数据。

2024-03-27 17:23:25 837 1

原创 MybatisPlus出现Error attempting to get column ‘xxx字段‘ from result set异常

org.springframework.dao.InvalidDataAccessApiUsageException: Error attempting to get column 'state' from result set. Cause: java.sql.SQLFeatureNotSupportedException; null; nested exception is java.sql.SQLFeatureNotSupportedException

2023-08-09 22:49:10 7284 3

原创 SpringBoot GraalVM Native Image Support

GraalVM本机镜像提供了一种部署和运行Java应用程序的新方法。与Java虚拟机相比,本机镜像可以使用更小的内存占用和更快的启动时间来运行。它们非常适合使用容器镜像部署的应用程序。与为JVM编写的传统应用程序不同,GraalVM Native Image应用程序需要提前处理才能创建可执行文件。这种提前处理涉及从应用程序的主要入口点静态分析应用程序代码。GraalVM本机镜像是一个完整的、特定于平台的可执行文件。

2023-08-08 22:54:35 1985

原创 maven集成protobuf插件实现proto文件转换java类文件

在网络通信中大家经常会接触到网络数据传输,然后不同的数据格式在传输中底层格式会有不同的却别。反之,不然以任何什么数据格式都是为了提高传输效率以及节省带宽消耗。常见的传输数据格式有fastjson(alibaba)、xml、protobuf(Google RPC)、hessian(Dubbo RPC)、jackson2(SpringMVC默认)、java原生序列化技术等。那这么多序列化方式我们到底选那种呢,这个就得根据具体的业务常见,框架来决定。

2023-08-03 22:55:08 2028

原创 JVM基础知识

JVM基础知识 高吞吐 低延时 常用JVM参数

2023-08-01 21:54:39 574 1

空空如也

空空如也

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

TA关注的人

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