自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CompletableFuture 从源码到实战:让异步编程像喝奶茶一样丝滑

从 Java 异步编程进化史切入,对比传统 Future 的痛点,揭示 CompletableFuture 如何通过链式调用、灵活组合和优雅异常处理解决回调地狱。深入剖析其无锁状态机、Treiber 回调栈等底层设计,详解 thenApply、allOf 等核心 API 的使用场景。结合电商订单、数据聚合等实战案例,提供线程池隔离、超时控制、批量并行等高性能方案,配套可复用工具类。总结避坑指南与最佳实践,帮助开发者快速掌握异步编程精髓,提升系统并发能力与代码可读性。

2025-08-02 10:40:30 957

原创 CompletableFuture 全景深度解析与高性能实践手册:从源码到业务落地

解析 Java 8 引入的 CompletableFuture 如何解决传统 Future 的回调地狱、组合困难等痛点。深入剖析其底层数据结构(volatile 结果存储 + Treiber 回调栈)与无锁状态机设计,揭秘 CAS 操作保障高并发性能的原理。系统梳理一元操作(thenApply/handle)、二元操作(thenCombine/applyToEither)、多元操作(allOf/anyOf)等核心 API,详解带 Async 后缀方法的线程控制策略。结合电商订单、数据聚合、支付多渠道等实战场

2025-08-02 10:38:11 846

原创 JetBrains Annotations:从入门到落地,彻底告别 NullPointerException

全面解析 JetBrains 注解库的核心功能与实战价值。作为 Java 开发者解决空指针异常(NPE)的高效工具,其通过 @NotNull、@Nullable 等注解在编译期标记变量空状态,结合 IntelliJ IDEA 静态检查,将 NPE 风险提前暴露。文章详解 20 余种注解用法,包括 @Contract 方法契约、@TestOnly 测试边界等,搭配 MyBatis、Spring Web 等框架整合案例。同时提供团队落地六步法,从规范制定到 CI 集成,附代码评审清单与常见误区指南。

2025-07-30 23:21:47 647

原创 从规范到架构:一篇读懂 Java 工程建模、分层、命名与演进之路

本文详解Java工程从规范到架构的完整链路,涵盖系统、模块、组件等核心概念辨析,助你厘清架构设计基础。包含Java工程规范全景图,解析4层架构(Controller/Service/Manager/DAO)的职责与边界,明确VO、DTO、DO、PO等领域模型的血缘关系及转换规则,提供类与方法命名的实操指南。还介绍从MVC到六边形架构的演进,结合美团、阿里等案例拆解微服务拆分原则与反模式,附工具链与自动化方案。帮你规避90%项目常见陷阱,快速落地规范与架构设计。

2025-07-30 11:13:45 1022

原创 Spring Cache 扩展:Redis 批量操作优化方案与 BatchCache 自定义实现

探索如何通过继承 Spring Cache 的 Cache 接口,以 RedisCache 为基础实现 BatchCache 扩展,深度解析 RedisCache 底层源码,详细讲解兼容 Spring Cache 规范的批量操作实现方案。涵盖 BatchRedisCacheWriter、BatchRedisCacheManager 等核心组件的完整代码实现,以及性能测试与优化策略。关键词:Spring Cache、Redis Cache、Redis 批量操作、Cache 批量操作。

2025-07-21 23:55:28 1118

原创 Spring AI RAG 高级检索增强:探索基于查询转换与文档处理的技术

SpringAI框架通过模块化设计解决了RAG在智能问答系统中的四大核心挑战:检索召回率不足、查询歧义性、文档冗余与冲突以及边界情况处理。其高级RAG流水线包含五个关键组件:MultiQueryExpander通过生成查询变体提升召回率;RewriteQueryTransformer消除查询歧义;CompressionQueryTransformer优化多轮对话上下文;ConcatenationDocumentJoiner实现文档去重合并;ContextualQueryAugmenter处理低相关性结果。

2025-07-20 17:08:54 907

原创 [特殊字符] 探索 Moments 极简朋友圈: iPhone 16 Pro 模拟的深度优化

Moments是一款极简朋友圈应用,采用Golang重构后具备更小包体积和更强功能。核心功能包括:支持标签管理、图片上传(本地/S3)、Markdown语法、多媒体嵌入(音乐/视频/豆瓣引用)的Memo记录;适配移动端、暗黑模式、SQLite数据库等特性。项目通过CSS优化隐藏干扰元素,并实现灵动岛歌词容器动画效果,包含歌词滚动、炫光动画等视觉增强。技术亮点在于采用iPhone 16 Pro模拟器,通过动态计算最优尺寸、创建分层容器、实现多播放器状态同步(使用MutationObserver替代轮询机制),

2025-07-20 17:01:23 1134

原创 Spring AI RAG 实战:MultiQueryExpander+RewriteQueryTransformer+CompressionQueryTransformer打造高精准多轮对话知识库

本文详细介绍了基于SpringAI 1.0.0-SNAPSHOT版本的RAG(检索增强生成)系统从开发到生产落地的全流程实践。主要内容包括: 环境与依赖配置:详细说明JDK21、SpringBoot 3.3.0等核心组件的版本选型原则及兼容性矩阵 系统架构实现:采用DDD分层设计,包含查询预处理、多查询扩展、向量检索、结果合并等完整RAG流程 生产级优化:提供Redis向量存储配置、动态模型切换、全链路监控(Zipkin)、缓存策略等多维度优化方案 测试与部署:涵盖单元测试、JMH性能测试、Docker镜像

2025-07-19 00:56:07 1315

原创 Spring AI 高级RAG检索增强生成优化指南: MultiQuery 与文档处理提升检索精度与召回率

Spring AI以MultiQueryExpander与RewriteQueryTransformer重构RAG效能MultiQueryExpander通过生成3-5个语义变体查询,较传统方案提升召回率40%+,精准覆盖专业术语多样场景;RewriteQueryTransformer结合上下文改写模糊表述,多轮对话歧义解决意图识别。CompressionQueryTransformer 实现历史会话压缩;ConcatenationDocumentJoiner以双轨去重(哈希/语义)清除冗余。

2025-07-19 00:32:26 951

原创 Java集合处理库——collection-complete

Java集合处理库collection-complete通过链式调用简化批量数据操作。该库提供高效的集合处理方案,支持批量获取用户信息、订单数据等场景,显著减少重复代码和数据库访问次数。核心功能包括链式调用、批量操作、算法优化和灵活扩展,通过Complete、Prepare、SetGet、Write四个核心类协同工作。其性能优势体现在减少内存占用、优化数据处理流程,特别适合处理大量关联表查询和业务ID补充需求。项目提供详细示例,帮助开发者快速实现高效、可维护的集合数据处理逻辑。

2025-07-17 23:59:40 891

原创 权限控制流程编排:Spring Bean 作用域在复杂业务场景下的设计与实践

Spring Bean 机制作为 Spring 框架的核心,在复杂业务场景中发挥着关键作用。本文深入解析如何通过 Bean 生命周期、作用域、BeanPostProcessor 等核心特性,解决动态数据源切换、细粒度权限控制、复杂流程编排等实际业务难题。文中详细介绍了三大典型场景的解决方案:基于自定义作用域与 ThreadLocal 实现多租户动态数据源隔离,结合 BeanPostProcessor 与代理模式构建灵活的权限拦截体系每个方案均包含完整代码实现、关键流程时序图及优缺点分析。

2025-07-17 00:46:41 610

原创 Spring Bean 深度剖析:生命周期、加载机制与作用域的底层实现

Spring Bean生命周期与作用域机制深度解析 核心概念 Bean本质:由Spring容器管理的Java对象,与普通对象的区别在于全生命周期由容器控制(创建、依赖注入、销毁)。 作用域类型:单例(默认)、原型、请求、会话等,决定Bean的创建方式和生命周期边界。 生命周期关键阶段 初始化:通过@PostConstruct、InitializingBean、init-method执行,顺序固定。 销毁:通过@PreDestroy、DisposableBean、destroy-method释放资源。

2025-07-16 10:43:51 524

原创 深入排查:@Scope(“prototype“)与@RequestScope字段篡改问题全链路分析

在SpringBootMVC生产环境中,字段篡改问题表现为不同请求间的数据交叉污染,涉及@Scope("prototype")和@RequestScope作用域。本文通过源码分析,揭示了问题根源:单例Bean直接持有原型Bean导致实例复用(伪单例),以及异步任务因ThreadLocal未传播导致的上下文丢失或污染。解决方案包括: Prototype作用域:配置proxyMode=ScopedProxyMode.TARGET_CLASS或通过ApplicationContext动

2025-07-16 09:29:15 814

原创 Spring 作用域冲突深度解析:@Scope(“prototype“)与@RequestScope的冲突与解决方案

Spring框架中,@Scope("prototype")和@RequestScope的冲突源于作用域语义的根本对立。prototype强调每次获取新实例,而RequestScope绑定请求生命周期。冲突表现为实例意外复用、数据污染或线程异常。本文提出7种解决方案:1)明确单一作用域;2)代理注入分离职责;3)@Lookup动态获取实例;4)手动获取绕过自动注入;5)自定义作用域解析器;6)ObjectProvider延迟获取;7)ThreadLocal手动管理上下文。最佳实践遵循单一职

2025-07-15 22:17:40 763

原创 Java 线程池与多线程并发编程实战全解析:从异步任务调度到设计模式落地,200 + 核心技巧、避坑指南与业务场景结合

本文系统探讨了多线程编程在现代软件开发中的核心价值与应用策略。主要内容包括:多线程基础概念、线程池机制、并发冲突解决方案、业务开发全流程整合及函数式编程结合等。线程池通过资源复用和任务缓冲显著提升性能,但需根据任务类型(I/O/CPU密集型)合理配置核心参数。文章详细分析了线程泄漏、过载和死锁等常见问题,并给出针对性解决方案。特别强调线程池与业务需求的深度结合,从需求分析到运维监控的全流程管理。最后指出虚拟线程、云原生适配等未来趋势,建议开发者从小处着手,重视测试验证,持续学习新技术。多线程编程的核心在于找

2025-07-15 17:37:50 817

原创 Netty源码深度解析:从启动到数据流转的全链路剖析

本文深入解析Netty 4.1.x核心源码,揭示其高性能网络编程的实现原理。主要内容包括:1.启动流程分析:详细拆解ServerBootstrap初始化、Channel注册及端口绑定过程,展现主从Reactor模型的实现;2.线程模型剖析:深入EventLoop工作机制,包括事件循环、任务队列及JDK空轮询修复等关键技术;3.数据读写全链路:从客户端发送到服务端处理的完整流程,涵盖粘包拆包、编解码等核心环节;4.设计模式应用:责任链模式在ChannelPipeline中的实现,以及事件驱动模型的异步处理机制

2025-07-14 22:48:38 940

原创 MySQL 底层技术深度解析:索引、事务、锁与优化全链路剖析

MySQL底层核心技术解析与实践优化指南 本文深入剖析MySQL核心技术的底层实现,从B+树索引结构、事务与锁机制到查询优化器工作原理,提供系统级优化方案。主要内容包括: 索引优化:详解B+树节点结构、插入/查询/删除流程,解析联合索引的最左前缀原则,指导高效索引设计。 事务机制:深入MVCC实现原理,分析不同隔离级别下ReadView的生成逻辑,揭示Next-Key锁如何防止幻读。 性能调优:基于代价模型解析优化器执行计划选择逻辑,提供慢查询优化方法论,包含典型案例分析(JOIN优化、排序优化等)。 实践

2025-07-14 17:12:05 1284

原创 Elasticsearch — 索引(Mapping Index)

摘要: Elasticsearch的Mapping定义了索引数据结构,包含字段名称、类型、属性等,类似关系型数据库的表结构。Mapping核心是Properties,支持动态映射(Dynamic Mapping)和显式映射(Explicit Mapping)。索引由分片组成,支持水平扩展。字段类型包括文本、数字、日期等,Analyzer用于文本分析。Index Settings控制索引行为,分为静态和动态设置。文档路由算法决定数据存储位置,主分片数量不可修改。写操作需主分片成功后再复制到副本分片,读操作可来

2025-07-09 18:22:15 838

原创 项目模块设计指南:让代码告别“一锅粥“,团队协作更丝滑

在软件开发的世界里,代码就如同城市的建筑,需要精心规划布局,才能高效运转。许多项目初期,开发者一心扑在功能实现上,代码一股脑堆砌,很快就陷入 “混沌”。想象一个没有分区规划的城市,商业区、住宅区、工业区混杂,交通拥堵,水电供应混乱。项目代码也是如此,业务逻辑、数据操作、用户交互代码交织,牵一发而动全身,修改一处功能,可能导致看似不相关的地方出错,排查问题像大海捞针,耗费大量时间精力。这类问题的根源在于代码职责不清晰。每个功能模块都承担过多任务,既处理复杂业务规则,又直接操作数据库读写,还负责与用户交互展示,

2025-07-09 13:34:37 764

原创 Elasticsearch — 如何存储数据并保持一致性?

Elasticsearch是一个基于Lucene的分布式搜索分析引擎,具有强大的全文检索和实时数据处理能力。其核心架构包含节点、分片、副本和索引等组件,通过分布式设计实现高可用性和扩展性。节点分为主节点、数据节点、协调节点等不同角色,各司其职;分片机制支持水平扩展,主分片处理写入,副本分片提供冗余和读取负载均衡。Elasticsearch采用乐观锁、版本控制、复制策略等多重机制保证数据一致性,并具备自动故障转移能力。合理配置分片数量、副本策略和节点角色对系统性能至关重要,建议根据数据量、查询负载和硬件资源进

2025-07-08 18:45:46 1173

原创 WebFlux 实战指南 :从入门到精通,环境搭建、控制器设计、数据库交互(含 R2DBC)到高并发优化(限流、缓存)的响应式编程全链路实践

本文深入探讨了Spring WebFlux响应式编程的核心价值与实践应用。首先分析了传统同步阻塞式编程的瓶颈,强调WebFlux基于Reactive Streams规范的非阻塞I/O、背压支持和多范式兼容等优势。随后详细介绍了项目环境搭建、依赖配置和生产级参数优化方案。 文章重点阐释了WebFlux的核心组件设计:控制器层通过Mono/Flux处理异步请求,过滤器链实现日志、跨域和异常处理等通用逻辑,文件模块支持分片上传和断点续传。数据库访问采用R2DBC替代JDBC,配合响应式Repository和事务管

2025-07-08 12:21:28 758

原创 Spring AI 中的 DocumentTransformer 与 RAG 深度解析

本文深入解析SpringAI中的DocumentTransformer和RAG模块,详细介绍了核心组件及其使用方法。DocumentTransformer提供文本分割、元数据格式化、摘要生成等功能,通过组合多个转换器可构建强大的数据处理流水线。RAG模块则通过文档检索和生成模型的结合实现精准回答,包含QuestionAnswerAdvisor、RetrievalAugmentationAdvisor等核心组件。文章还分享了多查询扩展、上下文感知、文档合并等高级技巧,以及性能优化策略,并提供了完整的实战案例代

2025-07-07 15:17:43 1173

原创 Spring AI 架构解析与核心模块实践

本文介绍了SpringAI的技术架构与核心功能,该系统为Java开发者提供了集成人工智能能力的便捷方案。文章详细解析了SpringAI的五大模块:AI模型集成(支持OpenAI等主流服务)、向量数据库、文档处理、对话记忆存储和优化求解器,并附有时序图说明交互流程。通过Ollama本地模型示例代码,展示了从环境配置到API开发的完整实践路径。此外,文章深入探讨了AI开发中的关键概念如提示工程、嵌入技术、Token计算和RAG技术,并介绍SpringAI如何简化工具调用和响应评估。最后强调SpringAI通过标

2025-07-04 15:58:37 944

原创 Spring Boot加载与Bean处理的细节剖析

SpringBoot启动优化全流程解析 摘要:本文系统梳理了SpringBoot启动全流程的核心环节与优化策略。启动流程以SpringApplication#run方法为主线,通过监听器机制跟踪starting、environmentPrepared等6个关键阶段。在Bean处理方面,详细解析了实例化、依赖注入的生命周期管理,并提出了延迟加载(@Lazy)、异步初始化(@Async)等优化方案。针对配置文件加载,建议采用拆分策略和按需加载机制。此外,文章还涵盖线程池优化、监控体系搭建(Actuator)、日

2025-07-03 12:12:04 928

原创 当我的代码评审开始 “AI 打工”:聊聊这个让我摸鱼更心安的神器

文章介绍了一款基于大模型的代码评审工具yunxiao-LLM-reviewer,它能自动分析MR代码变更,快速发现安全漏洞、性能问题和逻辑错误。相比传统人工评审,该工具具有秒级反馈、统一标准、24小时在线的优势,可无缝集成到云效Flow中。实测显示,该工具显著提升了MR通过率,降低了沟通成本,让开发者能专注于核心业务逻辑开发。文章还分享了工具的技术亮点和适用场景,强调AI不是替代人工,而是帮助开发者提高效率的工具。项目已在GitHub开源,提供详细的使用教程。

2025-07-03 12:09:44 892

原创 Java基础-线程&并发

线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。

2023-04-15 22:40:48 261 2

空空如也

空空如也

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

TA关注的人

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