<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[长河的博客]]></title><description><![CDATA[一个不断前进的开发者]]></description><link>https://blog.youkuaiyun.com/u010398771</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010398771]]></copyright><item><title><![CDATA[SpringBoot中使用Vault保护配置文件中的敏感数据]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/155714418</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/155714418</guid><author>u010398771</author><pubDate>Mon, 02 Nov 2026 09:51:30 +0800</pubDate><description><![CDATA[Vault是HashiCorp推出的开源密钥管理工具，用于集中存储和管理敏感数据如密码、API密钥、证书等。它通过身份认证与授权机制，实现秘密的加密存储、动态访问控制及操作审计，有效防止机密泄露。本文介绍如何使用Docker快速部署Vault（开发模式），并通过SpringBoot整合Vault，实现配置文件中敏感信息的安全管理，支持加密解密、KV存储及动态凭证获取，提升微服务应用的数据安全性与运维效率。]]></description><category></category></item><item><title><![CDATA[Java中的引用类型分为四种：强引用（Strong Reference）、软引用（Soft Reference）、弱引用（Weak Reference）和虚引用（Phantom Reference）]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/158460079</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/158460079</guid><author>u010398771</author><pubDate>Mon, 02 Nov 2026 09:50:34 +0800</pubDate><description><![CDATA[本文深入解析Java四种引用类型：强、软、弱、虚引用，核心在于对象回收时机的差异。强引用不可回收；软引用内存紧张时清理，适合缓存；弱引用下次GC即回收，用于避免内存泄漏，如WeakHashMap、监听器注册表；虚引用仅在回收后通知，用于堆外内存管理。关键区分：软引用“赌内存够”，弱引用“赌还被使用”。正确使用可防内存泄漏，误用则引发诡异bug。强调：多数业务无需引用类型，仅在明确对象生命周期控制时才应使用。]]></description><category></category></item><item><title><![CDATA[DDD 重构七步实录：从一段下单代码开始拆]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/163045632</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/163045632</guid><author>u010398771</author><pubDate>Fri, 02 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[本文记录了一次订单下单流程的重构实践，从传统Service模式逐步演进至领域驱动设计（DDD）思想。通过七步重构：将行为还给对象、定义聚合根、引入Repository、拆分应用与领域服务、建立防腐层、最终以领域事件解耦，实现了代码可维护性与业务清晰度的显著提升。作者强调：不必照搬所有步骤，应根据项目痛点选择性落地——核心是“把规则收归其位”，而非堆砌架构术语。真正的价值在于为变化划界，而非炫技。]]></description><category></category></item><item><title><![CDATA[Java的GC（垃圾回收）中，标记无用对象的核心方法是可达性分析算法]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/158460091</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/158460091</guid><author>u010398771</author><pubDate>Fri, 02 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[Java垃圾回收基于可达性分析：从GCRoots（如栈帧、静态变量、JNI引用等）出发遍历引用链，可达对象存活，否则视为垃圾。该机制避免了引用计数法无法处理循环引用的缺陷。虽标记阶段稳定，但回收优化迅猛——分代ZGC、紧凑对象头、分代Shenandoah等新特性显著降低停顿与内存占用。finalize()已废弃，不再推荐使用。核心在于：“谁该死”由可达性决定，而“如何高效清理”才是性能关键。]]></description><category></category></item><item><title><![CDATA[springBoot项目配置优先级]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/156080828</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/156080828</guid><author>u010398771</author><pubDate>Tue, 01 Sep 2026 09:07:02 +0800</pubDate><description><![CDATA[&lt;think&gt;我们不需要主动生成摘要，而是根据用户要求“根据以下内容，生成≤150字的文章摘要”。需要精准概括核心结论、优先级顺序和关键点。约束：字数≤150。输出格式是摘要内容，不要额外解释。先构思摘要：该文介绍SpringCloud+Nacos+SpringBoot下配置优先级，最终生效顺序从高到低：命令行参数&gt;JVM系统属性&gt;外部application配置&gt;Nacos远端配置&gt;bootstrap配置&gt;内置默认。底层由Spring Environment层级决定]]></description><category></category></item><item><title><![CDATA[高级后端开发之Java并发]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/156163684</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/156163684</guid><author>u010398771</author><pubDate>Tue, 01 Sep 2026 09:05:34 +0800</pubDate><description><![CDATA[本文围绕 Java 高级开发面试中的高并发、锁、高可用与数据一致性四大核心主题，给出从“会用”到“懂原理”的进阶路线。内容涵盖 JUC 源码与 AQS、缓存穿透击穿雪崩、Redis 分布式锁与 Redlock、本地消息表与幂等性设计，并结合“秒杀/抢保单”场景、AI 辅助读源码和动手写 Demo 等方法论，帮助读者把零散知识串成可落地的生产级能力。]]></description><category></category></item><item><title><![CDATA[AI学习规划]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/155105075</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/155105075</guid><author>u010398771</author><pubDate>Mon, 03 Aug 2026 09:07:11 +0800</pubDate><description><![CDATA[本文为Java开发者从AI应用入门到进阶提供系统性指导，聚焦保险业务场景下的生产级落地方案。主要内容分为四个阶段： RAG进阶优化：突破基础实现，掌握混合检索（BM25+向量）、重排序技术（Rerank模型）、语义切分（Parent-Child Indexing）等提升准确率至90%的方法，并深入Elasticsearch/Milvus调优。 Agent架构实现：通过Java注解实现LLM与业务系统对接，设计多轮对话状态管理（Redis持久化+槽位填充），构建具备规划能力的理赔预审Agent。 企业级网关设]]></description><category></category></item><item><title><![CDATA[从 120 个 POJO 迁移到 Java Record:生产环境实战、踩坑与原理深析]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/162880991</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/162880991</guid><author>u010398771</author><pubDate>Mon, 03 Aug 2026 09:06:16 +0800</pubDate><description><![CDATA[团队将120多个POJO类迁移至Java Record特性，显著减少了60%的样板代码。文章详述了Record的核心价值（声明式不可变数据类）、生产环境迁移实践，包括与Jackson/MyBatis等框架的集成问题及解决方案，并深入解析Record的字节码实现和性能优势（方法调用效率提升10-20%）。特别指出Record适合DTO/值对象等场景，但不适用于需要可变性、继承或JPA实体的情况。结合Java21的RecordPatterns，展示了模式匹配带来的代码可读性提升。最后给出渐进式迁移建议，强调Re]]></description><category></category></item><item><title><![CDATA[推荐一个开源的功能开关平台：Facet]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/163215513</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/163215513</guid><author>u010398771</author><pubDate>Sun, 26 Jul 2026 13:44:35 +0800</pubDate><description><![CDATA[Facet 是一个开源的 LaunchDarkly 替代品，专为自托管功能开关设计。该项目采用 Go + React 技术栈，核心特点是评估路径极快（仅从 Redis 读取）、原生多租户支持、异步评估日志不丢失。相比现有方案，Facet 在高并发场景下表现更优，且技术栈统一便于团队维护。系统提供多环境管理、分段发布、RBAC 等功能，通过 Docker Compose 一键部署。项目已具备生产可用性，未来计划增加 WebSocket 实时推送、规则引擎增强等特性。开发者可快速体验或参与贡献，代码仓库地址：g]]></description><category></category></item><item><title><![CDATA[ReentrantLock 完全教程：从使用到源码深度解析]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/156189312</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/156189312</guid><author>u010398771</author><pubDate>Wed, 01 Jul 2026 09:49:32 +0800</pubDate><description><![CDATA[本文系统分析了Java中的ReentrantLock可重入锁，包括其核心特性、实现原理及最佳实践。ReentrantLock相比synchronized提供了更灵活的锁控制，支持可重入性、公平/非公平策略、可中断锁获取、超时机制以及多条件变量。文章详细解析了其基于AQS的底层实现，包括状态管理、同步队列和条件队列的工作原理，并通过生产者-消费者模型等代码示例演示了实际应用。最后总结了使用建议：优先考虑synchronized的简洁性，在需要高级功能时选用ReentrantLock，并强调必须在finally]]></description><category></category></item><item><title><![CDATA[项目中集成加入gatling进行接口简单压测]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/156715264</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/156715264</guid><author>u010398771</author><pubDate>Wed, 01 Jul 2026 09:48:05 +0800</pubDate><description><![CDATA[Gatling是一款基于Scala开发的开源高性能负载测试工具，专为HTTP/HTTPS、WebSocket等接口测试设计。核心特点包括：采用非阻塞IO模型（Netty）实现高并发（单机支持数万并发）；通过Scala DSL编写简洁直观的测试脚本；自动生成包含响应时间、成功率等指标的HTML报告；支持主流协议并易于集成CI/CD流程。文章详细介绍了Gatling的Maven项目配置方法、测试脚本编写示例（包含创建/删除场景）、执行命令以及报告分析方法，并提供了CI/CD集成方案和分布式测试建议.]]></description><category></category></item><item><title><![CDATA[APISIX]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/159553157</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/159553157</guid><author>u010398771</author><pubDate>Mon, 01 Jun 2026 08:51:12 +0800</pubDate><description><![CDATA[​Apache APISIX 是 Apache 软件基金会下的顶级项目，由 API7.ai 开发并捐赠。它是一个具有动态、实时、高性能等特点的云原生 API 网关。
]]></description><category></category></item><item><title><![CDATA[Maven 与 Gradle：50 个项目迁移实战复盘 —— 那些踩过的坑与关键决策反思]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/157904477</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/157904477</guid><author>u010398771</author><pubDate>Mon, 01 Jun 2026 08:49:20 +0800</pubDate><description><![CDATA[本文基于50个Maven项目迁移至Gradle的实践经验，揭示了企业级构建工具迁移的隐性成本与核心挑战。迁移初衷是追求现代化构建体验和更快速度，但实际遇到父POM转换、插件适配、多环境配置等8大关键问题，导致12周迁移总成本高达18万美元。数据显示，Gradle的优势仅体现在本地增量构建场景，而CI/CD环境因缺乏缓存反而性能下降。最终建议：优先优化现有Maven体系而非盲目迁移；若必须迁移，需分步实施、培训前置、解决缓存问题，并预留2-3倍预算。核心结论：工具选择应基于实际需求而非技术潮流，持续优化现有体]]></description><category></category></item><item><title><![CDATA[基于 Jib 实现无 Dockerfile 的 Spring Boot 应用容器化]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/157216568</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/157216568</guid><author>u010398771</author><pubDate>Fri, 01 May 2026 16:51:15 +0800</pubDate><description><![CDATA[本文介绍了Google开发的Jib工具，它能够在不编写Dockerfile的情况下为Java应用构建优化的容器镜像。Jib通过分层构建实现快速增量部署，支持Maven/Gradle插件，具有构建速度快、可复现、无守护进程依赖等优势。文章详细演示了如何为SpringBoot应用配置Jib Maven插件，包括基础镜像定制、JVM参数设置等高级配置，并比较了本地构建与远程推送两种使用方式。Jib将容器构建流程嵌入构建工具生命周期，为Java应用容器化提供了高效安全的解决方案。]]></description><category></category></item><item><title><![CDATA[XXL-JOB 从本地快速上手到核心架构深度解析]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/160689183</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/160689183</guid><author>u010398771</author><pubDate>Fri, 01 May 2026 16:49:46 +0800</pubDate><description><![CDATA[XXL-JOB分布式任务调度框架实战指南 摘要：XXL-JOB作为轻量级分布式任务调度框架，通过调度中心与执行器分离的设计实现高效任务调度。本文从本地部署入手，详细介绍了环境准备、数据库初始化和管理平台配置等基础操作。深入解析了框架的核心机制，包括自动注册与心跳、端口分工、8张核心数据表的作用等关键技术点。重点剖析了调度中心与执行器的交互流程，以及分片广播、故障转移等高级特性。文章还提供了任务开发示例代码，帮助开发者快速掌握自定义任务开发方法。最后总结了XXL-JOB的高可用设计思想及其在企业级应用中的优势]]></description><category></category></item><item><title><![CDATA[Claude 31 个高频技巧（Advent of Claude）]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/158966594</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/158966594</guid><author>u010398771</author><pubDate>Wed, 01 Apr 2026 17:54:06 +0800</pubDate><description><![CDATA[《ClaudeCode高效使用指南》摘要：本文总结了31个提升开发效率的核心功能，分为7大类别：1）项目初始化与上下文管理（如/init创建项目记忆、@引用文件）；2）必背快捷键（!执行命令、EscEsc回退）；3）会话管理（历史对话恢复、导出会话）；4）效率工具（状态栏定制、Token监控）；5）规划功能（深度思考模式、方案先行）；6）安全控制（沙箱模式、危险命令拦截）；7）高级扩展（浏览器集成、Agent并行任务）。每个功能点简明说明用途、适用场景和操作方法，建议开发者根据实际需求逐步掌握这些功能组合，]]></description><category></category></item><item><title><![CDATA[为什么在 2026 年我建议中小团队从微服务架构回归模块化单体架构]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/158419078</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/158419078</guid><author>u010398771</author><pubDate>Wed, 01 Apr 2026 17:53:29 +0800</pubDate><description><![CDATA[文章摘要：近年来，许多团队正在从微服务架构回归模块化单体架构。作者通过亲身实践指出，微服务在中小团队中常带来四大痛点：分布式调试耗时、部署协调困难、数据一致性复杂、网络调用延迟。2026年的行业趋势显示，越来越多团队选择模块化单体（微服务思想+单体部署形态），它保持了清晰的模块边界但降低了复杂度。建议普通业务团队从模块化单体起步，待业务真正需要时再拆分微服务。架构选择应服务于业务实际，而非盲目跟风。]]></description><category></category></item><item><title><![CDATA[Spring Boot 处理动态请求体的优雅方式]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/157216170</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/157216170</guid><author>u010398771</author><pubDate>Wed, 04 Mar 2026 17:17:17 +0800</pubDate><description><![CDATA[本文介绍了在SpringBoot中处理动态JSON请求体的方法。当API需要接收结构不同的订单数据（实体商品、数字商品、订阅订单）时，可通过Jackson的多态反序列化实现统一接口。核心步骤包括：1) 定义抽象基类Order；2) 创建继承Order的具体订单类；3) 使用@JsonTypeInfo和@JsonSubTypes注解配置类型映射。该方法利用orderType字段自动识别订单类型，使单个/orders接口能灵活处理多种数据结构，提升API的简洁性和扩展性，适用于接收关联但结构不同的数据场景。]]></description><category></category></item><item><title><![CDATA[踩坑记：Spring 启用虚拟线程后 100 并发就卡死？根源与解决方案]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/157909102</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/157909102</guid><author>u010398771</author><pubDate>Wed, 04 Mar 2026 17:16:30 +0800</pubDate><description><![CDATA[摘要：JDK19虚拟线程特性在Spring Boot 6.1+应用中启用后，部分开发者遇到100并发压测时系统卡死问题。问题根源在于默认ForkJoinPool载体线程池容量不足，同步JDBC操作会阻塞载体线程。解决方案需从三方面优化：1）自定义载体线程池；2）扩容数据库连接池；3）优化SQL减少阻塞。验证表明，虚拟线程需结合业务特性调整配置才能发挥高吞吐优势，特别是IO密集型场景需特别注意线程池和连接池的适配。]]></description><category></category></item><item><title><![CDATA[Spring AI：Java开发者的人工智能集成利器]]></title><link>https://blog.youkuaiyun.com/u010398771/article/details/157652648</link><guid>https://blog.youkuaiyun.com/u010398771/article/details/157652648</guid><author>u010398771</author><pubDate>Mon, 02 Feb 2026 16:33:01 +0800</pubDate><description><![CDATA[Spring AI是Spring生态中应用于人工智能领域的应用框架，它的目标是将Spring 生态系统的设计原则（如可移植性、模块化设计）应用于AI领域，并在AI领域中推广使用POJO（Plain Old Java Objects）作为应用的构建模块。]]></description><category></category></item></channel></rss>