自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(640)
  • 资源 (19)
  • 收藏
  • 关注

原创 ThreadLocal 内存泄露从原理到复现

蟹堡王的厨房里,每位员工(线程)都有自己的私人物品柜。柜子里可以放今天的订单小票、顾客偏好、追踪号……这就是同线程内自取自用,别跟隔壁工位串台。线程池里的工作线程复用了带脏数据的——打烊了还把蟹堡锁在柜子里不扔。很多人只记得一句口诀:「用完记得remove的 key 已经是弱引用了,为什么还会漏?为什么「普通新建线程」不一定爆,线程池却几乎必现?业务代码、框架过滤器、MDC 日志上下文分别该怎么收尾?钥匙(key)可以被章鱼哥 GC 收走,但蟹堡(value)仍被员工 Thread 死死拽着;

2026-08-05 08:15:00 306

原创 网络学习(五):从零理解 VIP 虚拟 IP

日常运维、上云、做高可用时,同事常说:「流量打到 VIP」「域名解析到 VIP」「主备切换后 VIP 漂过去了」。容易混淆的说法它实际更接近什么VIP一组机器对外共用的「虚拟」入口 IP物理 IP / 真实 IP网卡上真正配死在某台机器上的地址域名给人记的名字,本身不是 IPDNS把域名翻译成某个 IP(常常就是 VIP)的系统域名是门牌上的店名,VIP 是店门口统一的街道号;后面真正干活的可能是多台机器,街道号可以在机器之间「挪」。本文只做概念讲解,不绑定某一家云、某一份源码;

2026-08-04 14:23:05 207

原创 Git(九)你真的会合并代码到 master 吗?

很多团队「合到master」其实是这样做的:功能分支上积累十几次调试提交 → 直接提 MR 撞master→ 冲突丢给主干处理 → 历史脏、回滚难、评审费劲。冲突在功能分支消化:每个功能分支先合入最新master,冲突当场解决。历史压成一次提交:基于最新master再拉一条「待合入」干净分支,把功能分支成果带过去,用落回基线后再做成一条清晰 commit。用 MR 合入主干:推送待合入分支后,创建 MR(Merge Request,GitHub 上常叫 PR)合并到master,走评审与 CI。

2026-07-14 21:15:25 355

原创 Spring Boot 实战(四十二):集成 Spring AI 六大场景

做智能体或问答产品时,后端往往要同时暴露「对话、记忆、RAG、工具、多模态」等多类能力;前端则需要一页就能切换场景、填参数、看响应。如果一上来就接入真实模型供应商和向量库,环境、密钥、鉴权容易把学习路径打断。本文采用「先用可运行的模拟 AI 客户端把 API 契约和前端控制台搭通,后续再替换为真实 Spring AI」的路径:后端提供统一前缀/ai的 REST;前端用 Vue 控制台调用;开发期由 Vite 代理转发,避免跨域卡顿。用户在 Vue 页面选择场景并提交;Axios 请求/ai/*;

2026-07-09 22:28:57 454 1

原创 Spring Boot 实战(四十一):集成 BPMN(Flowable+bpmn-js)

企业里审批场景很多:请假、报销、采购……如果流转逻辑全写在 里,每次改流程都要发版。BPMN + Flowable 的做法是:本文用「请假审批」串联整条链路:最终你会得到两个工程:Java 侧常见工作流引擎均支持 BPMN 2.0,本文后端选用 Flowable,主要因为:它由 Activiti 原核心团队维护,API 与 Activiti 5/6 相近、迁移成本低;官方提供 Spring Boot Starter,几行配置即可跑起来;社区活跃、文档齐全,适合作为审批类系统的入门选型。流程建模前端的核心

2026-07-08 13:44:47 401

原创 IDEA(十五) IDEA 开发必备:Git Shelve Changes 与 Stash Changes 详解

Shelve(搁置)是 JetBrains IDE独有的功能,字面意思是「把东西搁到架子上」。它把选中的变更保存到本地目录,不经过 Git 提交历史,也不影响git status。只在 IDEA 内开发,不需要跨工具共享暂存内容需要按文件或代码块精细搁置(比 Stash 更灵活)希望搁置记录带 Changelist 名称,方便回来继续Stashgit stash push -m "你的说明"需要在命令行、SourceTree、GitKraken等其他 Git 工具中访问暂存。

2026-07-07 14:00:37 398

原创 ES 学习(十)DSL常用操作精简整理

must:必须满足且参与评分;must_not:必须不满足;should:或条件。分片公式:总分片数 = 主分片数 + 副本数 × 主分片数;生产注意:可添加新字段、可改副本数;不可改已有字段类型、不可删已有字段。精确匹配,不分词,适用于 keyword 字段;每两行一组:第一行元数据,第二行文档内容(delete 只需一行)。gte/lte/gt/lt:大于等于/小于等于/大于/小于。不需要相关性评分时,优先用 filter 替代 must。支持 Lucene 语法:AND、OR、NOT 等。

2026-07-03 13:20:40 283

原创 MySQL 学习(十一)MySQL 查索引还要「再查一次表」?——从 B+ 树到聚簇索引、二级索引与回表

MySQL 学习(十一)MySQL 查索引还要「再查一次表」?——从 B+ 树到聚簇索引、二级索引与回表

2026-05-25 23:45:00 375

原创 JDK 版本管理工具介绍:jenv与sdkman(Mac端)

jenv和sdkmanjenv 遵循 Unix 哲学的"单一职责",专注于做好JDK版本管理这一件事;sdkman 则提供了更为全面的开发工具管理解决方案。对于小型团队或个人开发者,如果主要工作集中在Java开发且环境相对稳定,jenv的简洁性和轻量性是理想选择。其简单的架构易于理解和维护,不会给开发环境带来额外负担。对于中大型团队或采用多技术栈的项目,sdkman的综合优势更为明显。它不仅能统一管理JDK,还能协调其他构建工具和JVM语言的版本,提供了一站式的开发环境管理方案。

2026-04-14 23:45:00 605

原创 ES 学习(九)从文本到词元:分词器如何“拆解“你的数据

是 ES 的默认分词器,适用于大多数语言场景。它基于Unicode文本分割算法,能够智能地识别单词边界。核心原理Unicode分词算法:基于Unicode标准附录#29(Unicode Text Segmentation)定义的词边界规则正则表达式匹配:使用正则表达式识别非字母数字字符作为分隔符双向最大匹配:在歧义情况下,优先选择更长的匹配结果工作流程1)字符过滤:可选的字符过滤器预处理(如HTML标签移除)2)分词:Tokenizer根据Unicode规则将文本按词边界切分3)小写转换。

2026-04-11 23:45:00 567

原创 ES 学习(八)为什么ES搜索这么快?倒排索引的实现解密

Elasticsearch之所以能够实现如此快速的搜索,其核心秘密就在于倒排索引这一精妙的数据结构。通过将"文档到词"的正向查找,转变为"词到文档"的逆向映射,ES从根本上解决了海量数据下全文检索的性能瓶颈。用户友好:简单的DSL语法隐藏复杂实现执行高效:并行分片、跳表加速、缓存优化扩展性强:分布式架构支持PB级数据理解这些底层机制,不仅能帮助我们写出更高效的查询,更能为系统架构设计提供重要参考。优秀的技术产品,是底层创新与上层抽象的完美结合。整理完毕,完结撒花~🌻。

2026-04-10 08:27:47 432

原创 ES 学习(七)性能陷阱

1)优先解决高频问题:深度分页、通配符查询、分片设置2)监控驱动优化:使用Profile API、慢查询日志等工具定位瓶颈3)渐进式优化:避免一次性做大量改动,逐步验证效果4)结合实际场景:根据业务特点选择合适的优化策略。

2026-04-09 23:45:00 470

原创 SpringBoot 实战(四十一):集成 Elasticsearch

本文介绍了在 SpringBoot 项目中集成 Elasticsearch 的完整流程。是一个基于 Lucene 的分布式全文搜索引擎,通过可以轻松实现与 SpringBoot 的整合,为应用提供强大的搜索、分析和数据可视化能力。本次集成将涵盖环境准备、依赖配置、索引管理、文档操作、高级查询等核心功能,确保系统具备高可用、高性能的搜索服务能力。

2026-04-08 07:12:38 573

原创 SimpleDateFormat 线程安全问题及修复方案

(java.text.SimpleDateFormat)是 Java 中常用的日期格式化工具类,但在多线程环境下存在严重的线程安全问题。本文将深入分析其线程不安全的根本原因,通过代码示例复现问题,并提供多种经过验证的修复与替代方案,最后总结高并发场景下的最佳实践。新项目优先:对于 Java 8 及以上版本的新项目,应无条件优先使用java.time包中的,它设计更合理,性能和安全性俱佳。旧项目改造:对于无法立即升级的旧项目,推荐使用方式封装,平衡安全与性能。避免静态共享绝对不要将实例声明为。

2026-04-03 08:26:20 441

原创 ES 学习(六)设置账号密码(安全认证)

登录 Kibana 管理界面。进入。点击。填写用户名、全名、电子邮件。在Roles部分,为用户分配一个或多个预定义角色(如)或自定义角色。设置密码并确认。正确设置和管理ES的账号密码是保障数据安全的基础。通过启用安全功能、初始化内置用户、创建自定义用户并遵循强密码策略,可以有效防止未授权访问。建议结合角色权限管理、TLS加密和API Key等机制,构建多层次的安全防护体系。另外,在Docker环境中,确保使用持久化存储是保障密码和配置不丢失的关键。整理完毕,完结撒花~🌻。

2026-04-02 08:26:16 651

原创 ES 学习(五):DSL常用操作整理

是基于 JSON 的查询语言,用于执行复杂的搜索、聚合和数据操作。本文档系统整理了DSL的核心操作类型、语法结构和最佳实践,帮助开发者快速掌握ES查询能力。本文档系统整理了Elasticsearch DSL的核心操作,涵盖了查询、聚合、索引管理和性能优化等关键领域。掌握这些常用操作,能够有效提升数据检索和分析的效率。在实际应用中,建议结合具体业务场景,灵活运用各种DSL特性,并持续关注性能优化,以构建高效稳定的搜索和分析系统。

2026-04-01 23:45:00 781

原创 ES 学习(四)Elasticsearch-Head 的安装和使用

ES 学习(四)Elasticsearch-Head 的安装和使用

2026-03-30 01:05:40 719

原创 Redis学习(十五)Mac 安装 Redis

1.Mac安装Redis,原来就是这么简单,https://blog.csdn.net/realize_dream/article/details/106227622。Redis 默认是前台启动,如果我们想以守护进程的方式运行(即后台运行),可以在。1、如果没有安装 Homebrew,可以安装 npm 的国内版本,下载会快一些。我们可以通过下面命令查看 Redis 是否正在运行。7、启动 Redis 客户端,打开终端并输入命令。6、redis-cli 连接 Redis 服务。为空,输入以下命令即可连接。

2025-11-06 23:45:00 482

原创 SpringBoot 实战(四十)集成 Statemachine

SpringBoot 实战(四十)集成 Statemachine

2025-11-05 23:45:00 930 6

原创 设计模式学习(十二)状态模式

设计模式学习(十二)状态模式

2025-11-04 23:45:00 886

原创 SpringBoot实战(三十九)集成 FreeMarker

FreeMarker是一款模板引擎工具:即一种基于模板和要改变的数据,用来生成输出文本(如:HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入它们所开发产品的组件。(FreeMarker 是免费的。为模板编写语言。它是简单、专用的语言,不是像 PHP 那样成熟的编程语言。那就意味着要准备数据在真实编程语言中来现实,比如数据库查询和业务运算,之后模板现实已经准备好的数据。

2025-10-24 23:45:00 784 1

原创 DDD(三)领域模型关键词解释、领域模型分类、关系图

平常我们有的实体比较负责,为了满足业务,有可能会弄出一个非常复杂的实体,里面包含很多实体,跟这个类似,这里的聚合是指同一生命周期,同一业务域的实体聚合成一个聚合根,也就是最外面的实体,并且这个实体管理者里面的所有实体,外面只能通过聚合根进行任何请求,聚合根再对里面进行操作,这里我感觉就是高内聚,聚合根不宜过大。聚合根是实体,有实体的特点,具有全局唯一标识,有独立的生命周期。是指业务核心,核心的竞争力,因为企业愿景不同,领域愿景也不同,核心域也不同,说白了,就是你们项目最初立项的目的是什么,目标是什么?

2025-10-23 23:45:00 830

原创 DDD(二)对比 MVC 架构,DDD 的优劣势

以应用层 Service 使用 DAO、PO 基础设施层包装业务逻辑的开发方式,乍一看以为应用层是在对领域建模的实现,“领域层” 有着丰富的对象链接,和真正的领域模型也非常类似,但当我们代码随着业务功能逻辑的逐步实现中会慢慢发现,我们写了一堆的 get/set 度喜庆,而他们被反复交叉使用,没有与任何领域聚合,也就是不具有任何的行为动作,只是一堆贫血模型对象。这种反模式的设计,其实完全与面向对象的设计是背道而驰的,面向对象的设计更希望行为和数据绑定在一起,与之对比的贫血模型更像是面向过程设计。

2025-10-22 23:45:00 776

原创 DDD(一)认识领域驱动设计(DDD的概念、主要架构模型)

DDD(Domain Driven Design,领域驱动设计)是一种软件设计思想和方法论,以领域为核心构建软件设计体系,将业务模型抽象成领域模型进行拆解和封装。DDD 不是一种架构,而是一种架构方法论,是一种拆解业务、划分业务、确定业务边界的方法,是一种领域设计思想。DDD 实际上是一套软件架构设计的方法论,我们可以在此之上更好地理解业务。并且我们可以根据这套方法论进行架构风格填充,包括微服务架构、面向服务架构、REST 风格架构以及六边形架构等等。

2025-10-21 23:45:00 1175

原创 Vue2 入门(一)介绍及Demo项目创建

Vue2 入门(一)介绍及Demo项目创建

2025-09-02 23:45:00 1649

原创 SpringBoot实战(三十八)实现一个 MCP 服务器(JDK17)

SpringBoot实战(三十八)实现一个 MCP 服务器(JDK17)

2025-08-29 00:30:00 1105

原创 大模型(一)什么是 MCP?如何使用 Charry Studio 集成 MCP?

大模型(一)什么是 MCP?如何使用 Charry Studio 集成 MCP?

2025-08-25 23:45:00 1566

原创 Python 学习(十六) 下一代 Python 包管理工具:UV

Python 学习(十六) 下一代 Python 包管理工具:UV

2025-08-23 23:45:00 2154

原创 手撕源码(六)Java、Spring、Dubbo三者SPI机制的原理和区别

手撕源码(六)Java、Spring、Dubbo三者SPI机制的原理和区别

2025-08-23 06:45:00 901

原创 下载JDK的几种方式:OpenJDK、Oracle JDK、OpenLogic JDK、Zulu JDK 详解

下载JDK的几种方式:OpenJDK、Oracle JDK、OpenLogic JDK、Zulu JDK 详解

2025-08-22 23:45:00 2769

原创 Mac(十)设置右键文件夹使用 idea、vscode 打开

Mac(十)设置右键文件夹使用 idea、vscode 打开

2025-08-22 06:45:00 888

原创 Mac(九)隐藏 Dock 栏中特定 App 图标

Mac(九)隐藏 Dock 栏中特定 App 图标

2025-08-21 23:45:00 3031

原创 IDEA(十四) IntelliJ Idea 常用快捷键(Mac)

IDEA(十四) IntelliJ Idea 常用快捷键(Mac)

2025-08-20 23:45:00 963

原创 Mac(八)新机必备程序清单

Mac(八)新机必备程序清单

2025-08-20 06:45:00 1313

原创 Mac(七)右键新建文件的救世主 iRightMouse

Mac(七)右键新建文件的救世主 iRightMouse

2025-08-19 23:45:00 1935

原创 Mac(六)彻底删除已卸载应用的残留「打开方式」选项

Mac(六)彻底删除已卸载应用的残留「打开方式」选项

2025-08-19 06:45:00 1142

原创 IDEA(十三)你不知道的宝藏功能:本地比对两个文件的差异

IDEA(十三)你不知道的宝藏功能:本地比对两个文件的差异

2025-08-18 23:45:00 1285

原创 Sublime Text 快捷键(MAC环境)

Sublime Text 快捷键(MAC环境)

2025-08-18 06:45:00 2171

原创 Mac(五)自定义鼠标滚轮方向 LinearMouse

Mac(五)自定义鼠标滚轮方向 LinearMouse

2025-08-17 23:45:00 987

原创 Mac(四)自定义按键工具 Hammerspoon 的安装和使用

Mac(四)自定义按键工具 Hammerspoon 的安装和使用

2025-08-17 10:42:40 1767

nginx-1.22.1-install.tar.gz,Linux环境编译后免安装Nginx压缩包

内容概要:该安装包为1.22.1版本的 nginx 源码包编译后的安装压缩包。 主要用途:可以用于在 Linux 上免安装地部署 Nginx。 使用步骤: 1.将压缩包放置到 /usr/local 目录下解压; 2.使用命令配置环境变量:export PATH=$PATH:/usr/local/nginx/sbin 3.使用命令测试是否配置成功:nginx -v 资源亲测可用,整理不易,还请各位大佬简单打赏一下。

2023-03-19

SpringBoot和Spring版本对应-v20230314.xlsx

创作背景:你还在发愁如何权威地学习 SpringBoot 各个版本?你还在担心找不到好的 SpringBoot 版本对应关系?这份资料可以满足上到架构师,下到 SpringBoot 小白的学习资料需求,赶快收入囊下吧。 内容概要:本人根据官方文档整理了 SpringBoot 从 1.0.0.RELEASE 到 3.0.4 版本所对应的 Spring、JDK、Maven、Gradle、Tomcat、Jetty、Undertow等版本的对应信息可以下载 Excel 文件查看。 主要用途:用于系统架构搭建和 Spring 版本依赖排查。

2023-03-14

Chrome谷歌浏览器安装包

自己亲自使用过的一个Chrome安装包推荐给大家,无广告,使用了一年多,目前没有发现有问题。

2019-04-20

Oracle简易版安装包及安装文档

Oracle傻瓜版安装包及安装文档,亲测可用! Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

2018-06-27

springboot-test.zip

这是本人总结精简之后的一个SpringBoot和SpringSecurity集成的demo项目,本人亲测可正常运行,内置登录页面非本人创作,请勿商用!

2019-11-30

oracle可视化连接工具(sqldeveloper)绿色版

亲测可用! Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

2018-06-27

Excel欢迎界面.xls

Excel欢迎界面.xls是由我本人制作,通过使用VBA控制欢迎界面的显示与关闭功能,希望能够帮助到大家,一起学习进步。

2019-12-21

kettle分页抽取、插入实现.zip

kettle分页抽取、插入实现.zip

2021-05-14

EasyX安装包及文档

EasyX是应用于Visual C++6.0的图形支持工具,安装之后可以通过vc调用实现一系列的图形操作,例如简单的界面游戏实现。

2018-08-04

mongodb-win32-x86_64-windows-4.4.5.zip(MongoDB + Robot 3T连接工具,包含一键添加服务、一键启/关闭脚本)

4.4.5 MongoDB + 1.4.3 Robot 3T连接工具,官网下载,配置已初始化好,包含一键添加服务、一键启动、关闭等脚本。使用方便,亲测好用。配套文章:https://blog.csdn.net/qq_33204709/article/details/115905659

2021-04-20

settings.xml

本文件是用于eclipse中maven的修复; 使用方法:将settings.xml复制到C:\Users\Administrator\.m2\repository下,然后在eclipse中更改一下maven的settings设置,update一下maven即可。

2018-05-09

2019(上)2018(下)中级网络工程师试题及答案解析.zip

本资源涵盖2019年上半年上午下午全部试题及答案解析和2018年下半年上午下午全部试题及答案解析,希望能够帮助大家顺利通过网络工程师考试。

2019-11-12

.m2.rar文件

本文件是主要是用于eclipse的修复; 使用方法:在eclipse出错的时候,先解压,然后去C:\Users\Administrator下替换已有的.m2文件夹,然后重启eclipse即可。

2018-05-09

spring框架的Bean配置文件

用于在使用spring框架的时候,放在src/java/resource的目录下,对spring的bean进行配置。

2018-07-04

wordTemplate.rtp

PowerDesigner 逆向工程 导出为文档用模板,本人亲测好用,清除了很多没有的解析,欢迎下载。

2021-01-20

spring-cloud-demo-main.zip

一个Spring Cloud Demo,用于初始化项目架构,文章https://blog.csdn.net/qq_33204709/article/details/111068089所用资源。

2020-12-14

plsql绿色免安装版.rar

本资源是本人亲自使用超过一年的工具,免费使用,操作流畅,分享给大家

2019-06-06

xshell6.rar

xshell6压缩包是一款便携连接服务器的工具包,可用于连接系统服务器,并进行相应的文件传输工作,本人一直在使用非常好用。

2020-05-07

java_format.xml

这是我本地一直在使用的java格式化xml文件,其中包括了替换制表符为四个空格等格式功能,与大家分享

2019-05-29

js_format.xml

这是我本地一直在使用的js格式化xml文件,其中包括了替换制表符为四个空格等格式功能,与大家分享

2019-05-29

springboot-test.zip

这是本人总结精简之后的一个SpringBoot和SpringSecurity集成的demo项目,本人亲测可正常运行,内置登录页面非本人创作,请勿商用!

2019-11-28

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

TA关注的人

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