<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ahatc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ahatc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ahatc]]></copyright><item><title><![CDATA[Linux 基础实验：从终端操作到 C 语言编译]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/165759718</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/165759718</guid><author>Ahatc</author><pubDate>Thu, 17 Sep 2026 23:57:54 +0800</pubDate><description><![CDATA[本文介绍了在CentOS Stream 9虚拟机中使用FinalShell进行Linux基础操作的实验环境与核心内容，涵盖系统概述、目录结构、路径概念、命令格式及常用终端命令。重点演示了用户切换（whoami、sudo su、exit）、目录浏览（pwd、cd、ls）、权限管理（chmod）以及目录创建、移动、复制和删除操作（mkdir、mv、cp -r、rm -rf），强调了rm -rf的高危性，帮助初学者掌握Linux基本操作技能。]]></description><category></category></item><item><title><![CDATA[hadoop部署前置准备]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/165748670</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/165748670</guid><author>Ahatc</author><pubDate>Thu, 17 Sep 2026 15:49:17 +0800</pubDate><description><![CDATA[本文档基于CentOS Stream9 aarch64系统，通过三台虚拟机（hadoop1、hadoop2、hadoop3）搭建Hadoop环境。首先配置主机名与hosts文件实现互信；接着在hadoop1上生成SSH密钥并分发至各节点，实现免密登录；随后在三台机器上统一安装JDK 21，配置环境变量，并使用scp命令将JDK目录及环境变量文件同步至其他节点，完成集群基础环境部署。]]></description><category></category></item><item><title><![CDATA[基于决策树算法的动物分类实验：Mac环境复现指南]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/159769321</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/159769321</guid><author>Ahatc</author><pubDate>Thu, 02 Apr 2026 20:00:06 +0800</pubDate><description><![CDATA[本指南详细阐述了在Mac环境下，利用Python的pandas和scikit-learn库复现基于决策树算法的动物分类实验。实验采用UCI的Zoo Data Set，涵盖了环境配置、数据预处理（将.data转换为.csv）、代码实现、模型训练与评估，并特别强调了Mac系统下工具选择的兼容性。通过特征工程和决策树模型，实现了对动物类别的准确预测，并提供了详细的步骤和代码示例。]]></description><category></category></item><item><title><![CDATA[实测分享：AI 生成 Python 科技海报时，如何避免文字乱码问题]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/159252816</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/159252816</guid><author>Ahatc</author><pubDate>Thu, 19 Mar 2026 21:35:09 +0800</pubDate><description><![CDATA[无]]></description><category></category></item><item><title><![CDATA[拒绝重复造轮子：利用自定义注解封装POI，实现Java通用Excel解析]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/157258338</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/157258338</guid><author>Ahatc</author><pubDate>Thu, 22 Jan 2026 17:48:13 +0800</pubDate><description><![CDATA[本文详细讲解基于 SSM + Vue + Element UI 架构下的 Excel 导入导出全流程解决方案。通过引入 Apache POI 4.1.2，利用自定义注解（@ExcelField）与 Java 反射机制，封装了高复用性的通用工具类，实现了实体类与 Excel 表头的自动映射。文章深度解析了后端 SpringMVC 的 MultipartResolver 配置与 Service 层逻辑，以及前端 Axios 处理 Blob 二进制流导出与 FormData 文件上传的核心代码。同时，针对“导出文]]></description><category></category></item><item><title><![CDATA[详解Spring AOP五大通知类型：从零搭建企业级操作日志系统]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156991910</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156991910</guid><author>Ahatc</author><pubDate>Thu, 15 Jan 2026 19:07:31 +0800</pubDate><description><![CDATA[本文深入解析基于 Spring Boot 与 AOP（面向切面编程）实现统一日志记录的完整流程。针对传统 OOP 开发中日志代码冗余、耦合度高的问题，通过自定义注解 @AopLogText 结合 AspectJ 切面，详细演示了前置、后置、返回、异常及环绕五大通知类型的具体实现代码。文章重点讲解了如何通过注解参数绑定获取业务描述，以及 ProceedingJoinPoint 在环绕通知中的核心应用与注意事项。读者阅读后将掌握如何优雅地剥离非业务逻辑，构建可复用、低耦合的日志模块，提升代码质量与维护效率。]]></description><category></category></item><item><title><![CDATA[解决服务间通信难题：Spring Boot 中 HttpClient 的标准使用姿势]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156696445</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156696445</guid><author>Ahatc</author><pubDate>Wed, 07 Jan 2026 21:35:17 +0800</pubDate><description><![CDATA[本文深入解析 Java 主流 HTTP 客户端工具 Apache HttpClient。文章首先阐述了 HttpClient 相比原生 HttpURLConnection 的优势及其在第三方 API（如支付、地图）集成中的应用场景。接着详细拆解了核心组件架构（Client、Request、Entity 等），并提供了基于 GET 和 POST（JSON）请求的标准代码实现。最后，总结了连接池管理与资源释放等生产环境最佳实践。通过本文，开发者可快速掌握 HttpClient 的使用流程，编写出高效、健壮的服务]]></description><category></category></item><item><title><![CDATA[Linux环境下前后端分离项目（Spring Boot + Vue）手动部署全流程指南]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156489543</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156489543</guid><author>Ahatc</author><pubDate>Thu, 01 Jan 2026 18:01:08 +0800</pubDate><description><![CDATA[本文详细记录了在 Linux 环境下手动部署前后端分离项目（Spring Boot + Vue）的完整流程。以若依框架为例，从 JDK、Redis、Nginx 等基础环境准备讲起，深入解析了后端 Maven 打包与 nohup 后台启动策略，以及前端 Vue 生产环境构建与静态资源目录规划。重点攻克了 Nginx 配置难点，包括反向代理接口转发、解决跨域问题以及修复 Vue History 模式刷新 404 的具体配置代码。适合开发者快速掌握服务器应用上线技巧，规避常见部署陷阱，实现项目的高效交付。]]></description><category></category></item><item><title><![CDATA[Redis 五大常用数据类型详解及 Java 客户端(RedisTemplate)操作实战]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156430873</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156430873</guid><author>Ahatc</author><pubDate>Tue, 30 Dec 2025 20:34:44 +0800</pubDate><description><![CDATA[本文详细记录了 Redis 的核心知识体系及其在 Spring Boot 项目中的整合实战。文章首先介绍了 Redis 在 MacOS 环境下的安装与启动方式，并深入剖析了 String、Hash、List、Set、ZSet 五大核心数据类型的特点与典型应用场景（如缓存、排行榜、分布式锁等）。随后，提供了常用命令的速查手册。在实战部分，重点讲解了 Spring Boot 整合 Redis 的详细步骤，包括依赖引入、连接池配置，以及如何自定义 RedisTemplate 序列化器以解决 Key-Value 乱]]></description><category></category></item><item><title><![CDATA[深入理解 Java 包装类缓存机制：从 Integer 比较失效谈起]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156355652</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156355652</guid><author>Ahatc</author><pubDate>Sun, 28 Dec 2025 09:52:27 +0800</pubDate><description><![CDATA[本文复盘了一次因使用 == 比较 Integer 类型导致生产环境数据丢失的事故。在菜单筛选逻辑中，当 ID 超出 -128 至 127 的缓存范围时，== 因比较内存地址而返回 false，导致匹配失败。文章深入分析了 Java 包装类的缓存机制（享元模式）及 == 与 equals() 的本质区别，并通过代码示例演示了经典的“128陷阱”。最后总结了开发规范：包装类比较严禁使用 ==，推荐使用 Objects.equals() 以避免空指针和逻辑错误。]]></description><category></category></item><item><title><![CDATA[保姆级教程：Obsidian + PicGo + Gitee 搭建免费稳定的自动化图床]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156134120</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156134120</guid><author>Ahatc</author><pubDate>Sun, 21 Dec 2025 20:42:30 +0800</pubDate><description><![CDATA[本文详细介绍了如何利用 Auto Upload Images 插件配合 PicGo 和 Gitee，构建一套免费、稳定的 Obsidian 自动化图床方案。针对 Markdown 笔记本地图片无法直接分享、跨设备同步困难等痛点，实现了“插入图片即上传，本地链接自动转云端”的无感自动化流程。文档涵盖了从 Gitee 仓库创建、PicGo 安装配置到 Obsidian 插件关联的完整步骤，并提供了常见报错（如文件名空格问题）的解决方案，助你打造高效的知识管理工作流]]></description><category></category></item><item><title><![CDATA[全栈开发必备：JWT 登录鉴权核心原理与 Spring Boot + Vue 前后端实战]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156134064</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156134064</guid><author>Ahatc</author><pubDate>Sun, 21 Dec 2025 20:37:52 +0800</pubDate><description><![CDATA[本文深入解析了 JWT (JSON Web Token) 的核心概念与无状态认证流程，并提供了基于 Java (Spring MVC) 和 Vue 的前后端整合完整代码实现。内容涵盖 JWT 的 Header/Payload/Signature 结构分析、后端 Token 生成工具类封装、Spring 拦截器鉴权逻辑，以及前端 Axios 请求拦截、Cookie 存储与 Vuex 状态管理等关键技术点。通过图文详解与实战代码，帮助开发者彻底掌握 JWT 鉴权机制，解决前后端分离架构下的登录认证难题。]]></description><category></category></item><item><title><![CDATA[obsidian图片整理插件：从 整理图片 - 删除闲置图片 - 到规范图片存放格式]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156090412</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156090412</guid><author>Ahatc</author><pubDate>Fri, 19 Dec 2025 17:19:05 +0800</pubDate><description><![CDATA[本人使用的三个obsidian图片整理的插件 让图片分类更佳有序 防止丢失]]></description><category></category></item><item><title><![CDATA[Maven 入门：项目管理与依赖管理的核心玩法]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/156089493</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/156089493</guid><author>Ahatc</author><pubDate>Fri, 19 Dec 2025 17:14:28 +0800</pubDate><description><![CDATA[Maven 是 Java 开发必备的项目管理工具，核心价值在于统一项目结构、标准化构建生命周期（清理、编译、测试等），并通过坐标高效管理第三方 jar 包。其仓库分为私有、中央、第三方三类，依赖按优先级从对应仓库获取。本文详解 Maven 核心概念、标准项目结构，重点解读 pom.xml 配置文件关键标签，结合 MySQL 驱动、JUnit 等依赖导入案例，助开发者快速上手，提升项目构建与依赖管理效率。]]></description><category></category></item><item><title><![CDATA[前后端交互实战指南：Axios 封装、跨域解决与数据流转全解析]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/155712333</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/155712333</guid><author>Ahatc</author><pubDate>Mon, 08 Dec 2025 17:33:27 +0800</pubDate><description><![CDATA[本文详细讲解前后端交互的核心实现方案，以 Axios 为核心工具，介绍其安装、全局封装及拦截器配置，实现请求参数统一处理与响应结果规范解析。同时覆盖跨域问题解决策略，开发环境通过 Vue 代理、生产环境依赖后端 CORS 配置。重点阐述数据流转逻辑：前端通过 Axios 发送请求，后端用 VO 接收参数并校验，经 Service 层将 VO 转换为 DO 操作数据库，再通过 DTO 过滤敏感字段后用 ResponseDTO 封装返回。全文结合实际开发场景，提供可落地的代码示例，助力开发者规范前后端交互流程]]></description><category></category></item><item><title><![CDATA[Mac 通过 Brew 安装 Maven 全指南：配置、镜像优化与 IDEA 集成实战]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/155646777</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/155646777</guid><author>Ahatc</author><pubDate>Sat, 06 Dec 2025 20:10:21 +0800</pubDate><description><![CDATA[本文聚焦 macOS 系统下 Maven 的快速搭建与配置，先介绍 Homebrew 的核心作用与 Maven 的项目管理价值。随后分步讲解通过brew install maven快速安装 Maven，通过mvn -v验证安装结果，无需手动配置环境变量。接着说明修改 settings.xml 文件配置私有仓库路径、添加阿里云镜像加速依赖下载的关键步骤，最后详细演示在 IDEA 中配置 Maven 路径、配置文件及仓库地址的操作，通过创建 Maven 项目验证环境可用性，为 Java 开发者提供简洁高效的环境]]></description><category></category></item><item><title><![CDATA[Mac 从零搭建 Vue 开发环境：Homebrew、NVM、Node.js（超完整）]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/155578718</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/155578718</guid><author>Ahatc</author><pubDate>Thu, 04 Dec 2025 20:36:57 +0800</pubDate><description><![CDATA[本文详细讲解 macOS 系统下 Vue 开发环境的从零搭建流程，先明确 Homebrew（包管理工具）、NVM（Node 版本管理）、Node.js（运行时）、npm（包管理）与 Vue 的核心作用与关联。随后分步介绍 Homebrew 的安装与国内镜像配置，NVM 的环境变量设置与 Node.js 版本安装切换，npm 镜像源优化，以及 Vue CLI 的全局安装。最后通过创建 Vue 项目、启动开发服务器验证环境可用性，同时提供常用命令参考，为前端新手提供清晰、可落地的环境搭建方案。]]></description><category></category></item><item><title><![CDATA[数据库入门到实战：概念、SQL 操作与设计范式详解]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/155578654</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/155578654</guid><author>Ahatc</author><pubDate>Thu, 04 Dec 2025 20:29:53 +0800</pubDate><description><![CDATA[本文全面覆盖数据库核心知识体系，先明确数据库、表、数据的层级关系及 DBMS 的核心功能，对比关系型数据库（MySQL、Oracle 等）与非关系型数据库（MongoDB、Redis 等）的结构、特点与适用场景。随后详细讲解 SQL 语言分类，重点呈现 DML（增删改）、DQL（查询）的核心语法与使用技巧。最后阐述数据库设计三大范式的定义、反例与正例，说明其消除数据冗余的作用，同时提及实际开发中可适当反范式化以提升查询效率，为数据库设计与操作提供实用指导。]]></description><category></category></item><item><title><![CDATA[Java 单例设计模式详解：饿汉式与懒汉式实现核心]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/155537816</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/155537816</guid><author>Ahatc</author><pubDate>Wed, 03 Dec 2025 18:15:40 +0800</pubDate><description><![CDATA[本文聚焦 Java 单例设计模式，先明确其核心目标是保证类的唯一实例与全局唯一访问入口，以及私有构造方法、私有静态实例、公有静态访问方法三大核心设计要素。随后详细讲解饿汉式与懒汉式两种实现：饿汉式利用类加载机制，类加载时直接创建实例，天然线程安全但可能浪费内存；懒汉式采用延迟加载，首次调用访问方法时创建实例，按需分配资源但基础实现存在线程安全隐患。文章通过具体代码示例，清晰呈现两种方式的实现逻辑，为开发者选择合适的单例方案提供参考。]]></description><category></category></item><item><title><![CDATA[图片验证码实现全解析：从生成到校验的前后端流程]]></title><link>https://blog.youkuaiyun.com/Ahatc/article/details/155504170</link><guid>https://blog.youkuaiyun.com/Ahatc/article/details/155504170</guid><author>Ahatc</author><pubDate>Tue, 02 Dec 2025 22:28:20 +0800</pubDate><description><![CDATA[本文围绕图片验证码的实现流程展开，先介绍验证码从前端请求到后端校验的整体步骤，再讲解后端通过 Spring Boot 生成随机验证码图片与唯一标识 UUID，将验证码答案与 UUID 存入 Session 并返回 Base64 格式图片给前端的具体实现。同时阐述 Vue 前端在页面挂载时获取并展示验证码，用户登录时携带账号、密码、验证码及 UUID 提交请求的逻辑。最后说明后端通过 UUID 从 Session 取出验证码答案进行校验，验证通过后再核对账号密码的完整流程，展现前后端协同实现验证码功能的细节。]]></description><category></category></item></channel></rss>