<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Arabys的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Arabys</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Arabys]]></copyright><item><title><![CDATA[【Spring Boot】理解Spring Bean作用域的设计]]></title><link>https://blog.csdn.net/Arabys/article/details/155945374</link><guid>https://blog.csdn.net/Arabys/article/details/155945374</guid><author>Arabys</author><pubDate>Wed, 24 Dec 2025 15:22:59 +0800</pubDate><description><![CDATA[在Spring中，依托于Spring IOC容器，我们可以将对象作为Bean注册到容器里。然后在Spring项目里非常方便的注入进去。那么有个显而易见的问题是每一次通过依赖注入的对象实例都是同一个吗？或者是我们该如何控制对象实例的时机。这篇文章我将梳理一下Bean对象的作用域。]]></description><category></category></item><item><title><![CDATA[【Java】重构之善用多态解耦，记录一次模板方法实践]]></title><link>https://blog.csdn.net/Arabys/article/details/156097095</link><guid>https://blog.csdn.net/Arabys/article/details/156097095</guid><author>Arabys</author><pubDate>Sat, 20 Dec 2025 22:09:04 +0800</pubDate><description><![CDATA[前段时间维护了一个报警推送的桌面程序，支持几家供热公司的实时报警消息推送。每次启动时，通过配置指定处理其中某一家公司的报警推送。但是后面有一家客户的需求，是要实现实时报警次数统计的功能，于是引入Redis作为计数器。

最初代码采用条件分支实现，在主推送逻辑区域插入if判断，主流程被各种业务细节污染，违反了软件设计的基本开闭原则。现在趁着时间充裕，回过头来重构自己的代码。由于原有项目并不是一个Spring工程，思来想去，我决定用OOP中的多态来重构它，主要使用到了模板模式和工厂模式。]]></description><category></category></item><item><title><![CDATA[【Spring Boot】用Spring AOP优雅实现横切逻辑复用]]></title><link>https://blog.csdn.net/Arabys/article/details/155749827</link><guid>https://blog.csdn.net/Arabys/article/details/155749827</guid><author>Arabys</author><pubDate>Wed, 10 Dec 2025 23:17:22 +0800</pubDate><description><![CDATA[本文详细介绍了Spring AOP的核心概念、在Spring Boot中的使用方式、实现原理及多切面执行顺序，AOP作为面向对象编程的补充，通过横切逻辑的分离，能有效简化日志、事务、权限等功能的开发，提升代码的可维护性和复用性。在实际项目中，合理使用 AOP可以让业务逻辑更专注于核心功能，同时实现横切需求的统一管理。]]></description><category></category></item><item><title><![CDATA[【Spring Boot】Interceptor的原理、配置、顺序控制及与Filter的关键区别]]></title><link>https://blog.csdn.net/Arabys/article/details/155535751</link><guid>https://blog.csdn.net/Arabys/article/details/155535751</guid><author>Arabys</author><pubDate>Wed, 03 Dec 2025 23:32:20 +0800</pubDate><description><![CDATA[Spring Boot 中，拦截器通常用于在请求处理前后执行一些逻辑，这点与Servlet容器提供的过滤器有点类似。平常我们开发Jave Web应用的时候，经常能碰到要对请求访问进行通用逻辑处理的场景，比方说记录访问日志、确认访问权限等。你是否曾经纠结于是选过滤器还是拦截器来实现逻辑代码的编写，本篇文章先重点介绍Spring中的interceptor拦截器， 然后就过滤器和拦截器这两个常见但易混淆的请求拦截工具，讨论两者相似且不同之处。]]></description><category></category></item><item><title><![CDATA[【Java Web】过滤器的核心原理、实现与执行顺序配置]]></title><link>https://blog.csdn.net/Arabys/article/details/155504875</link><guid>https://blog.csdn.net/Arabys/article/details/155504875</guid><author>Arabys</author><pubDate>Wed, 03 Dec 2025 00:00:06 +0800</pubDate><description><![CDATA[过滤器是Java EE标准中Servlet规范提供的功能，也是传统JavaWeb的三大组件之一（Servlet，Filter和Listener）。通过过滤器可以把所有进入Servlet容器的请求都拦截住，无论静态资源还是Controller，从而实现一些通用的操作。]]></description><category></category></item><item><title><![CDATA[【ASP.NET Core】ASP.NET Core应用的Docker容器化与阿里云托管]]></title><link>https://blog.csdn.net/Arabys/article/details/153974692</link><guid>https://blog.csdn.net/Arabys/article/details/153974692</guid><author>Arabys</author><pubDate>Sat, 29 Nov 2025 21:29:08 +0800</pubDate><description><![CDATA[本文记录Docker发布ASP.NET Core应用，并且借助阿里云的容器镜像服务仓库，实现本地镜像的上传和服务器镜像拉取。希望能帮助到有需要的小伙伴。
]]></description><category></category></item><item><title><![CDATA[【Spring Boot】全局异常处理器与日志追踪]]></title><link>https://blog.csdn.net/Arabys/article/details/155245928</link><guid>https://blog.csdn.net/Arabys/article/details/155245928</guid><author>Arabys</author><pubDate>Thu, 27 Nov 2025 22:16:13 +0800</pubDate><description><![CDATA[一套完善的异常日志捕获往往能给我们的日常工作带来许许多多的便利。不仅要能方便还原出错信息，也要能快速定位到出错日志位置。

下面我将结合@RestControllerAdvice和@ExceptionHandler实现一个全局异常处理器，并且通过请求OncePerRequestFilter过滤器来获取请求头ID来定位异常日志位置。最后基于Logback来将日志保存到本地。]]></description><category></category></item><item><title><![CDATA[【Spring Boot】 无缝集成阿里云OSS，实现文件上传与安全访问]]></title><link>https://blog.csdn.net/Arabys/article/details/155161361</link><guid>https://blog.csdn.net/Arabys/article/details/155161361</guid><author>Arabys</author><pubDate>Sun, 23 Nov 2025 17:29:26 +0800</pubDate><description><![CDATA[本文简单的介绍了下在阿里云对象存储服务OSS文件中的上传与访问操作，实际上对于校验文件大小和类型等还是大有内容可谈，但是还是得依据实际生成工作需要去灵活调整。比如ossClient也支持删除文件和移动文件，这些可以依据工作需求去扩展。希望能帮助到大家。]]></description><category></category></item><item><title><![CDATA[【Spring Boot】事务的回滚、传播与常见问题]]></title><link>https://blog.csdn.net/Arabys/article/details/154961323</link><guid>https://blog.csdn.net/Arabys/article/details/154961323</guid><author>Arabys</author><pubDate>Thu, 20 Nov 2025 23:56:19 +0800</pubDate><description><![CDATA[想象一下这种场景，发薪日到了，公司财务给我们的银行卡转账。最终的结果无法就两种：转账成功，公司账户余额减少，个人账号余额增长相应的数字；另外一种就是转账失败，双方账户余额都不改变。
今天这篇文章我和大家一起梳理在Spring Boot中去实现复杂逻辑操作的单机事务，并理清事务的传播规则，从而保证数据的一致性。]]></description><category></category></item><item><title><![CDATA[【Spring Boot】基于MyBatis的条件分页]]></title><link>https://blog.csdn.net/Arabys/article/details/154870593</link><guid>https://blog.csdn.net/Arabys/article/details/154870593</guid><author>Arabys</author><pubDate>Sun, 16 Nov 2025 23:33:04 +0800</pubDate><description><![CDATA[条件分页是平常工作生产中十分常见的场景。储存过程还流行的年代，喜欢把分页逻辑封装在储存过程里，称之为数据库分页。甚至在前端，我们也可以通过对Array的操作实现前端分页。

本篇文章主要还是在Spring Boot框架上基于MyBatis来实现分页，并且引申出诸如分页数据封装对象，PageHelpe辅助工具和MyBatis XML中实现条件语句这些工作中实用的点，希望能帮助到大家。]]></description><category></category></item><item><title><![CDATA[【Spring Boot】REST与RESTful详解，基于Spring Boot的RESTful API实现]]></title><link>https://blog.csdn.net/Arabys/article/details/154456476</link><guid>https://blog.csdn.net/Arabys/article/details/154456476</guid><author>Arabys</author><pubDate>Sat, 08 Nov 2025 23:24:51 +0800</pubDate><description><![CDATA[提起WebAPI的开发，REST风格的API是不得不提及的一个话题。REST风格的WebAPI也是目前最流行的一种WebAPI风格，除了REST风格外，还有通过WebService或者WCF开发的基于SOAP协议的WebAPI，不过这些都在时代的潮流中或被沉淀，或又通过新的面貌重新进入我们的视野。

REST是一种基于 HTTP 协议的软件架构风格，而RESTful则是基于这种风格的实践。本文将详尽的介绍REST，并且通过Spring Boot开发RESTful WebAPI。]]></description><category></category></item><item><title><![CDATA[【Java】理解Java内存中堆栈机制与装箱拆箱的底层逻辑]]></title><link>https://blog.csdn.net/Arabys/article/details/153941027</link><guid>https://blog.csdn.net/Arabys/article/details/153941027</guid><author>Arabys</author><pubDate>Wed, 29 Oct 2025 23:39:46 +0800</pubDate><description><![CDATA[编写一个健壮的程序离不开对资源的高效利用，其核心在于高效利用内存与算力。Java程序的运行依赖JVM的内存管理，了解JVM 中堆栈的内存机制，会有助于我们提高程序运行效率、降低资源的消耗。
]]></description><category></category></item><item><title><![CDATA[【Spring Boot】深入浅出控制反转与依赖注入]]></title><link>https://blog.csdn.net/Arabys/article/details/153596840</link><guid>https://blog.csdn.net/Arabys/article/details/153596840</guid><author>Arabys</author><pubDate>Thu, 23 Oct 2025 22:31:22 +0800</pubDate><description><![CDATA[控制反转（Inversion of Control ，IOC）和依赖注入（Dependency Injection ,DI）是两个紧密相关的设计概念，常被一同提及但又容易混淆。依赖注入是控制反转实现思想的实现方式。依赖注入的提出是为了简化模块的组装过程，降低模块之间的耦合度。]]></description><category></category></item><item><title><![CDATA[【计算机网络】HTTP协议核心知识梳理]]></title><link>https://blog.csdn.net/Arabys/article/details/153213997</link><guid>https://blog.csdn.net/Arabys/article/details/153213997</guid><author>Arabys</author><pubDate>Thu, 16 Oct 2025 22:04:55 +0800</pubDate><description><![CDATA[HTTP全称Hyper Text Transfer Protocol。直译就是超文本传输协议。这是一种指定了浏览器和服务器之间数据传输的规则（客户端发起请求、服务器返回响应），也是互联网的核心通信协议。像我们平常浏览网页，调用API接口都离不开HTTP协议。HTTP自身是基于TCP协议，为浏览器到服务器之间提供可靠、有序、面向连接的数据传输服务。]]></description><category></category></item><item><title><![CDATA[【Java】从匿名内部类到函数式接口]]></title><link>https://blog.csdn.net/Arabys/article/details/153066657</link><guid>https://blog.csdn.net/Arabys/article/details/153066657</guid><author>Arabys</author><pubDate>Sun, 12 Oct 2025 16:06:06 +0800</pubDate><description><![CDATA[匿名内部类本质上还是通过对类的临时实现来实现逻辑封装，而Lambda表达式更多的是将函数逻辑作为一个参数传入，是函数式编程思想的体现。灵活的使用二者能帮我们更加优雅的封装代码里的逻辑，写出简洁的代码]]></description><category></category></item><item><title><![CDATA[【ASP.NET Core】分布式场景下ASP.NET Core中JWT应用教程]]></title><link>https://blog.csdn.net/Arabys/article/details/152115094</link><guid>https://blog.csdn.net/Arabys/article/details/152115094</guid><author>Arabys</author><pubDate>Thu, 09 Oct 2025 09:26:52 +0800</pubDate><description><![CDATA[相比传统 Session 在分布式环境中的性能瓶颈，JWT的无状态、防篡改等优势使其天然适合分布式环境。本文以ASP.NET Core为基础，从配置文件设计、JWT 服务封装、Token 生成与验证，到控制器调用及认证授权中间件配置，完整呈现了JWT在实际项目中的落地步骤。]]></description><category></category></item><item><title><![CDATA[【ASP.NET Core】身份认证——Identity标识框架指南]]></title><link>https://blog.csdn.net/Arabys/article/details/151616600</link><guid>https://blog.csdn.net/Arabys/article/details/151616600</guid><author>Arabys</author><pubDate>Mon, 22 Sep 2025 20:10:34 +0800</pubDate><description><![CDATA[本文介绍关于Identity标识框架的指南，从底层架构开始，扩展到如何应用]]></description><category></category></item><item><title><![CDATA[【Linux】麒麟服务器安装Nginx及配置反向代理、SSL证书实操记录]]></title><link>https://blog.csdn.net/Arabys/article/details/151758943</link><guid>https://blog.csdn.net/Arabys/article/details/151758943</guid><author>Arabys</author><pubDate>Tue, 16 Sep 2025 21:28:24 +0800</pubDate><description><![CDATA[本文记录一次在麒麟服务器V10 SP3上，通过dnf包管理工具来安装Nginx，并配置反向代理和设置ssl]]></description><category></category></item><item><title><![CDATA[【Linux】 麒麟服务器V10 SP3安装配置Redis操作总结（包管理方式）]]></title><link>https://blog.csdn.net/Arabys/article/details/151726029</link><guid>https://blog.csdn.net/Arabys/article/details/151726029</guid><author>Arabys</author><pubDate>Tue, 16 Sep 2025 20:15:00 +0800</pubDate><description><![CDATA[本文记录一次在麒麟服务器V10 SP3上，通过dnf包管理工具来安装Redis，简单配置并启用服务的经历]]></description><category></category></item><item><title><![CDATA[【C#】理解.NET内存机制：堆、栈与装箱拆箱的底层逻辑及优化技巧]]></title><link>https://blog.csdn.net/Arabys/article/details/151370419</link><guid>https://blog.csdn.net/Arabys/article/details/151370419</guid><author>Arabys</author><pubDate>Thu, 11 Sep 2025 20:40:25 +0800</pubDate><description><![CDATA[本篇文章将介绍堆（Heap）和栈（Stack）这两种基础内存区域，了解程序运行的时候堆和栈是如何决定数据的存储与访问方式。并且探究装箱与拆箱是如何偷走我们程序的内存和无端消耗资源的，以及如何去避免。]]></description><category></category></item></channel></rss>