<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[apple_59544967的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/apple_59544967</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; apple_59544967]]></copyright><item><title><![CDATA[Redis 核心数据结构与 Java 速查表（附带使用场景）]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/159506182</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/159506182</guid><author>apple_59544967</author><pubDate>Thu, 26 Mar 2026 13:52:50 +0800</pubDate><description><![CDATA[Redis五种数据结构及使用场景：1.String（字符串）适合缓存单个值（如验证码）和计数器；2.Hash（哈希）适合存储对象属性（如用户信息）；3.List（列表）适用于时间线、消息队列；4.Set（集合）用于去重场景（如点赞）；5.ZSet（有序集合）适合排行榜等排序需求。开发口诀：简单值用Value，对象用Hash，排队用List，去重用Set，排行用ZSet。]]></description><category></category></item><item><title><![CDATA[Spring Boot 优雅处理异常——自定义异常、全局拦截与统一响应格式]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/158581875</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/158581875</guid><author>apple_59544967</author><pubDate>Mon, 02 Mar 2026 18:33:25 +0800</pubDate><description><![CDATA[本文介绍了微服务架构下后端异常处理的标准化方案。通过自定义业务异常类(CommonException)封装业务错误码，配合统一返回对象(Result)保持前后端交互格式一致，并利用全局异常处理器(@RestControllerAdvice)实现异常拦截和转换。该方案使业务代码更简洁，前后端交互更规范，同时兼顾了微服务内部调用和外部API的安全需求。前端通过Axios拦截器统一处理错误提示，形成完整的错误处理闭环，显著提升了系统稳定性和开发效率。]]></description><category></category></item><item><title><![CDATA[分页查询全解析：Mybatis-Plus、PageHelper、手写 SQL 对比与实战]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/156022123</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/156022123</guid><author>apple_59544967</author><pubDate>Wed, 17 Dec 2025 16:58:52 +0800</pubDate><description><![CDATA[本文对比分析了MyBatis生态下的三种分页方案：MyBatis-Plus Page方案适合新项目，安全可控但依赖MP框架；PageHelper插件成熟易用，但存在ThreadLocal污染风险；手写SQL方案性能最优，适合核心系统但代码量大。建议根据项目需求选择：新项目推荐MP Page，老项目可用PageHelper，高性能场景首选手写SQL。每种方案各有优缺点，需结合项目规范和数据规模综合考虑。]]></description><category></category></item><item><title><![CDATA[Spring AOP 终极指南：一篇搞定 5 种通知与 JoinPoint，彻底解决“能否修改参数/结果”的困惑]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/154099931</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/154099931</guid><author>apple_59544967</author><pubDate>Thu, 30 Oct 2025 08:45:00 +0800</pubDate><description><![CDATA[通知类型何时执行能否访问 参数能否访问 返回值能否访问 异常能否修改 参数能否修改 返回值能否控制 执行(阻止/try-catch)@Before之前能否否否 (只能改对象状态)否否成功返回后能能否否否否抛异常后能否能否否否@After之后 (finally)能否否否否否@Around包围能能能 (try-catch)能能能。]]></description><category></category></item><item><title><![CDATA[Ubuntu 安装 Docker 超详细教程（含配置镜像加速与常见命令）]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/153795669</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/153795669</guid><author>apple_59544967</author><pubDate>Thu, 23 Oct 2025 22:51:01 +0800</pubDate><description><![CDATA[本文介绍了在Ubuntu系统上安装和使用Docker的完整指南。主要内容包括：通过阿里云镜像源安装Docker、配置国内镜像加速器以提高下载速度，以及常用的Docker命令。重点讲解了容器操作命令如dockerrun的参数详解，包括端口映射、数据卷挂载等实用功能。文章还提供了镜像和容器管理的常用命令，适合Java后端开发者快速掌握Docker基本操作，提高开发部署效率。]]></description><category></category></item><item><title><![CDATA[OpenFeign 终极指南：从入门到生产级实践（完整配置版）]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/153331430</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/153331430</guid><author>apple_59544967</author><pubDate>Wed, 15 Oct 2025 16:48:31 +0800</pubDate><description><![CDATA[本文详细介绍了OpenFeign在微服务架构中的应用与实践。首先阐述了OpenFeign作为声明式HTTP客户端的核心概念，随后通过三步演示快速集成方法。重点讲解了生产环境必备的容错机制，包括超时配置、重试策略以及熔断降级方案，并分析了这些机制的协同工作流程。最后探讨了拦截器实现请求统一处理和全局异常处理等高级特性。文章提供了完整的配置示例和最佳实践指南，帮助开发者构建稳健的微服务通信体系。]]></description><category></category></item><item><title><![CDATA[微服务“哨兵”Sentinel：从入门到精通，看这一篇就够了]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/153218940</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/153218940</guid><author>apple_59544967</author><pubDate>Tue, 14 Oct 2025 09:00:00 +0800</pubDate><description><![CDATA[当它检测到某个服务（或接口）频繁出错或响应过慢时，就会像保险丝一样“熔断”，在接下来的一段时间内，所有对这个不稳定服务的调用都会被直接拒绝，避免被它“拖下水”。一旦熔断被触发，在接下来的10秒内，所有对该接口的调用都会被 Sentinel 直接拒绝，快速失败。它能实时监控接口的访问量（QPS）或并发线程数，当流量超过设定的阈值时，它会果断地进行“交通管制”，比如让多余的请求直接失败、排队等待，从而避免后端服务因为车流量过大而瘫痪。在生产环境中，我们需要给用户一个更明确的提示，比如“系统繁忙，请稍后再试”。]]></description><category></category></item><item><title><![CDATA[深入浅出 Java 动态代理：JDK Proxy 与 CGLIB 全方位对比]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/151759871</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/151759871</guid><author>apple_59544967</author><pubDate>Tue, 16 Sep 2025 17:11:55 +0800</pubDate><description><![CDATA[本文对比了Java中两种动态代理技术：JDK动态代理和CGLIB。JDK动态代理基于Java反射机制，要求目标类必须实现接口，通过InvocationHandler拦截方法调用；CGLIB则通过字节码技术生成目标类的子类，无需接口即可实现代理，使用MethodInterceptor拦截方法。文章通过代码示例演示了两种代理的具体实现，并分析了两者的核心差异和适用场景：JDK代理适合面向接口编程，而CGLIB更灵活，能代理普通类。特别指出在Spring AOP中，CGLIB因能解决自调用失效问题、提供更一致的代]]></description><category></category></item><item><title><![CDATA[解密AOP：从动态代理到Spring AOP，让你的代码更优雅]]></title><link>https://blog.youkuaiyun.com/apple_59544967/article/details/151758091</link><guid>https://blog.youkuaiyun.com/apple_59544967/article/details/151758091</guid><author>apple_59544967</author><pubDate>Tue, 16 Sep 2025 15:53:49 +0800</pubDate><description><![CDATA[本文介绍了AOP（面向切面编程）的概念及其实现原理。文章首先展示了传统代码中横切关注点（如日志、性能监控）与业务逻辑混杂的问题，提出AOP能通过分离这些关注点提升代码模块化。详细解释了AOP的核心术语（切面、连接点、通知等），并剖析了其底层实现技术——动态代理（JDK代理和CGLIB）的工作原理。最后通过Spring AOP实战案例，演示了如何用@Around环绕通知实现无侵入式的性能监控，使业务代码保持简洁。全文阐明了AOP作为编程思想与动态代理作为实现技术的关系，展示了AOP在实际开发中的价值。]]></description><category></category></item></channel></rss>