<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[BeingACoder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/BeingACoder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; BeingACoder]]></copyright><item><title><![CDATA[【Spring Cloud】（一）微服务？Nacos？这篇博客带你快速复习！]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/158623663</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/158623663</guid><author>BeingACoder</author><pubDate>Wed, 04 Mar 2026 13:39:50 +0800</pubDate><description><![CDATA[本文介绍了微服务架构及其核心组件。微服务通过将功能拆分为独立部署的小型服务来替代传统单体架构，每个服务可使用不同编程语言。分布式系统采用集群部署，利用Nacos实现服务注册与发现。文章详细讲解了远程调用流程和负载均衡实现方式，并分析了注册中心宕机时的两种调用场景：已调用服务可从缓存获取地址，未调用服务则无法访问。这种架构提升了系统的可扩展性和健壮性。]]></description><category></category></item><item><title><![CDATA[【每日一道LeetCode】LeetCode202：快乐数]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/158609454</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/158609454</guid><author>BeingACoder</author><pubDate>Tue, 03 Mar 2026 12:48:46 +0800</pubDate><description><![CDATA[摘要：快乐数判定算法通过计算数字各位平方和并循环判断结果是否为1。关键点在于处理无限循环情况，使用哈希集合存储中间结果来检测重复。算法分为两部分：主函数用哈希法检测循环，辅助函数计算平方和。时间复杂度为O(logn)，空间复杂度O(logn)。该算法巧妙结合数学特性和哈希技术，有效解决了快乐数判定问题。]]></description><category></category></item><item><title><![CDATA[【SAA】SpringAI Alibaba学习笔记(三)：ChatModel对话记忆存储和持久化]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154676924</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154676924</guid><author>BeingACoder</author><pubDate>Tue, 11 Nov 2025 09:17:18 +0800</pubDate><description><![CDATA[摘要：本文介绍了大模型对话记忆的概念及其实现方式。对话记忆指LLM能够追踪和利用先前对话上下文的能力，分为内存存储和持久化存储两种类型。重点阐述了使用RedisStack实现持久化存储的方案，包括依赖导入、配置参数设置、RedisMemoryConfig类配置以及通过MessageWindowChatMemory管理对话记录的方法。最后展示了Controller层的具体实现代码，提供基于用户ID检索对话历史的功能，并建议使用Lambda表达式优化代码结构。]]></description><category></category></item><item><title><![CDATA[【SAA】SpringAI Alibaba学习笔记(二)：提示词Prompt]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154452261</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154452261</guid><author>BeingACoder</author><pubDate>Fri, 07 Nov 2025 08:44:35 +0800</pubDate><description><![CDATA[摘要：提示词是与AI交互的文字指令，在API调用中被划分为四大角色：System（设定AI行为边界）、User（用户输入）、Assistant（AI响应）和Tool（桥接外部服务）。通过封装Prompt对象可实现复杂交互，使用PromptTemplate可实现提示词与代码分离，便于维护。示例展示了如何通过chatModel和chatClient两种方式调用AI，并利用System角色限制回答范围，以及使用PromptTemplate动态插入内容生成故事。]]></description><category></category></item><item><title><![CDATA[【SAA】SpringAI Alibaba学习笔记（一）：SSE与WS的区别以及如何注入多个AI模型]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154408929</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154408929</guid><author>BeingACoder</author><pubDate>Wed, 05 Nov 2025 19:05:30 +0800</pubDate><description><![CDATA[本文探讨了SSE技术优势及多模型配置方法。SSE作为单向通信协议，通过HTTP长连接实现服务端数据推送，特别适合AI对话场景，其流式响应相比一次性返回用户体验更佳。在SAA开发中，通过配置类实现多模型共存，示例展示了千问和deepseek模型的定义与注入。同时说明了ChatClient需手动注入且依赖ChatModel，需通过@Qualifier指定具体模型。这些技术细节对提升AI应用性能和开发效率具有实用价值。]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(十三)：项目部署]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154382697</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154382697</guid><author>BeingACoder</author><pubDate>Tue, 04 Nov 2025 09:03:36 +0800</pubDate><description><![CDATA[本文介绍了前后端分离项目部署方案：使用两台服务器分别部署前后端项目，后端通过JDK17和Systemd管理，前端采用Nginx作为静态资源服务器和反向代理。详细步骤包括：1)配置本地域名映射模拟真实环境；2)后端项目打包、JDK安装及Systemd服务配置；3)前端项目构建、Nginx配置及静态资源部署。最终实现通过域名访问移动端和管理系统，动态请求由Nginx代理转发至后端服务。部署完成后，使用systemctl管理服务进程，通过访问配置的域名即可验证部署效果。]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(十二)：项目接口缓存优化]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154185804</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154185804</guid><author>BeingACoder</author><pubDate>Sat, 01 Nov 2025 08:46:58 +0800</pubDate><description><![CDATA[摘要：本文介绍了缓存优化技术及其实现方案。缓存优化通过将频繁访问的磁盘数据暂存到内存中，显著提升查询性能，但需注意数据库与缓存的数据一致性问题。文章以移动端房间详情接口为例，展示如何自定义RedisTemplate实现缓存逻辑：查询时优先读取Redis，未命中则查询数据库并缓存结果；在数据更新或删除时同步清理缓存，确保一致性。通过压力测试验证，带缓存的接口响应时间明显优于无缓存方案。]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(十一)：基于SpringBoot开发移动端登录管理接口]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154152836</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154152836</guid><author>BeingACoder</author><pubDate>Fri, 31 Oct 2025 14:27:45 +0800</pubDate><description><![CDATA[本文介绍了基于Spring Boot和阿里云短信服务实现的登录系统接口开发。系统包含三个主要接口：1) 获取短信验证码接口，通过阿里云短信服务发送验证码并存入Redis；2) 登录接口，验证短信验证码并返回JWT令牌，支持自动注册新用户；3) 获取用户信息接口，通过JWT解析用户身份后返回用户基本信息。系统采用Redis存储验证码并实现防刷机制，验证码有效期为300秒，60秒内不允许重复获取。开发过程中需要配置阿里云短信服务的AccessKey和模板参数，并集成Redis作为缓存服务。该系统实现了完整的短信]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(十)：基于SpringBoot登录管理接口开发]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154060710</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154060710</guid><author>BeingACoder</author><pubDate>Thu, 30 Oct 2025 21:49:39 +0800</pubDate><description><![CDATA[本文介绍了后台管理系统登录模块的实现方案，主要包括四个接口：图形验证码获取、用户登录、JWT生成与解析、用户信息获取。系统使用EasyCaptcha生成验证码并存入Redis，采用JWT进行身份验证，通过ThreadLocal存储用户信息避免重复解析token。关键实现包括验证码校验、密码加密比对、Token生成与拦截器处理等安全机制，并通过自定义Mapper查询用户数据。该方案实现了完整的登录鉴权流程，确保了系统的安全性和性能优化。]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(九)：SpringBoot与Redis整合的快速入门使用]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/154030147</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/154030147</guid><author>BeingACoder</author><pubDate>Tue, 28 Oct 2025 20:38:05 +0800</pubDate><description><![CDATA[本文介绍了Spring Boot集成Redis的配置和使用方法。首先导入spring-boot-starter-data-redis依赖，然后在application.yml中配置Redis连接参数。重点讲解了RedisTemplate的使用方法及其操作不同数据类型的API，同时指出了RedisTemplate默认使用JDK序列化导致命令行客户端乱码的问题。最后推荐使用StringRedisTemplate替代RedisTemplate，因其采用与Redis命令行相同的序列化方式，可有效解决乱码问题，并通过]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(八)：SpringBoot与Redis整合的快速入门使用(2)]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153895660</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153895660</guid><author>BeingACoder</author><pubDate>Mon, 27 Oct 2025 08:45:28 +0800</pubDate><description><![CDATA[Redis集合类型操作指南摘要 本文介绍了Redis中三种核心集合类型： 1.无序集合(set)：支持添加(sadd)、查询(smembers)、移除(srem)等操作，适用于去重场景和集合运算(交集sinter/并集sunion/差集sdiff)，可用于共同好友统计和抽奖系统。 2.哈希表(hash)：类似HashMap，支持键值对操作(hset/hget/hdel)，适合缓存对象数据，提供字段管理功能(hkeys/hvals/hgetall)。 3.有序集合(zset)：在set基础上增加分数排序功能，]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(七)：SpringBoot与Redis整合的快速入门使用（1）]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153867938</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153867938</guid><author>BeingACoder</author><pubDate>Sun, 26 Oct 2025 02:30:00 +0800</pubDate><description><![CDATA[Redis是一个高性能的键值存储系统，支持多种数据结构和持久化功能。它以内存存储为主，提供快速读写能力，常用作缓存服务。Redis支持字符串、列表、哈希等多种数据结构，并具有灵活的数据过期策略。本文介绍了Redis的基本概念、特点和应用场景，详细讲解了客户端连接方法，以及key、string、list等数据类型的常用命令和操作示例，包括键管理、数据增删改查等基础操作。这些功能使Redis广泛应用于缓存、计数器、消息队列等场景，能有效提升系统性能，降低数据库压力。]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(六)：基于SpringBoot预约看房接口和租约管理接口开发]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153817927</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153817927</guid><author>BeingACoder</author><pubDate>Sat, 25 Oct 2025 00:00:00 +0800</pubDate><description><![CDATA[本文介绍了预约看房和租约管理系统的接口实现。预约看房部分包含分页查询预约信息和更新预约状态两个接口，采用多表关联查询返回VO对象。租约管理部分提供五个接口：1)保存/修改租约信息；2)分页查询租约列表；3)根据ID查询租约详情；4)删除租约；5)更新租约状态。系统采用MyBatis-Plus框架实现，通过条件构造器进行数据操作，并针对复杂查询自定义VO对象和Mapper映射。整体架构遵循Controller-Service-Mapper三层设计，实现了租约和预约的完整管理功能。]]></description><category></category></item><item><title><![CDATA[【Linux】Coder的Linux复习课（二）：常用的Linux文件目录类命令]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153752866</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153752866</guid><author>BeingACoder</author><pubDate>Fri, 24 Oct 2025 02:00:00 +0800</pubDate><description><![CDATA[本文介绍了14个常用的Linux文件目录操作命令及其使用方法。主要内容包括：pwd显示当前路径，ls列出目录内容，cd切换目录，mkdir创建目录，rmdir删除空目录，touch创建空文件，cp复制文件/目录，rm删除文件/目录，mv移动/重命名文件，cat查看文件内容，more/less分屏查看文件，head/tail显示文件头尾部内容。每个命令都配有基础语法说明和具体操作示例，如使用绝对路径切换目录、创建多级目录、批量删除文件等。这些命令涵盖了Linux系统中最基本的文件管理操作，适合初学者快速掌握基]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(五)：基于SpringBoot公寓信息管理接口开发]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153690649</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153690649</guid><author>BeingACoder</author><pubDate>Thu, 23 Oct 2025 03:45:00 +0800</pubDate><description><![CDATA[本文介绍了公寓信息管理系统的接口设计与实现，主要包括以下功能模块： 公寓信息增删改查 新增/更新公寓信息（包含图片、标签、配套设施的删除重建逻辑） 分页查询公寓列表（支持多表联查和动态条件过滤） 获取公寓详细信息（包含关联数据查询） 删除公寓（级联删除相关数据） 状态管理 修改公寓发布状态 查询接口 根据区县ID查询公寓列表 系统采用MyBatis-Plus实现基础CRUD，复杂查询通过自定义SQL实现多表关联，并实现了严格的数据一致性管理。难点在于处理多表关联查询和更新操作时的数据一致性维护。]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(四)：基于SpringBoot文件管理接口开发]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153559021</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153559021</guid><author>BeingACoder</author><pubDate>Mon, 20 Oct 2025 00:00:00 +0800</pubDate><description><![CDATA[本文介绍了基于Spring Boot和MinIO的文件上传接口开发流程。主要内容包括：1) 创建文件上传Controller，定义upload接口接收MultipartFile文件；2) 配置MinIO客户端，包括依赖引入、yml配置和配置类编写；3) 实现文件上传Service逻辑，包含桶创建、权限设置、文件命名和上传；4) 处理MinIO服务异常，通过全局异常处理器统一处理。系统实现了文件上传功能，返回可访问的文件URL，并通过日期和UUID保证文件名唯一性，同时处理了MinIO服务异常情况。]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(三)：基于SpringBoot房间属性管理接口开发]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153467629</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153467629</guid><author>BeingACoder</author><pubDate>Sun, 19 Oct 2025 00:00:00 +0800</pubDate><description><![CDATA[本文介绍了房间属性管理接口的实现，主要包括五个接口功能：1.查询所有属性名称和值列表（使用左外连接多表查询）；2.新增/更新属性名称；3.新增/更新属性值；4.根据ID删除属性名称（连带删除关联属性值）；5.根据ID删除属性值。重点说明了MyBatis多表查询时使用resultMap处理复杂映射关系，以及左外连接(left join)与过滤条件的正确使用方法。接口实现采用分层架构，包含Controller、Service和Mapper层，通过MyBatis-Plus实现基础CRUD操作，复杂查询则通过自定义]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(二)：基于SpringBoot标签管理接口开发]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153408389</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153408389</guid><author>BeingACoder</author><pubDate>Sat, 18 Oct 2025 00:00:00 +0800</pubDate><description><![CDATA[本文介绍了标签管理接口的实现及枚举类型转换问题的解决方案。主要内容包括：1）查询标签列表接口，通过type参数进行条件查询；2）保存/修改标签接口；3）删除标签接口。重点解决了枚举类型转换异常问题，通过自定义Converter实现String到ItemType的转换，并进一步优化为使用ConverterFactory统一处理所有枚举类的转换。文中详细分析了类型转换流程，包括WebDataBinder和TypeHandler的处理机制，并给出了两种解决方案：单独枚举转换器和通用枚举转换工厂模式，后者可减少重复]]></description><category></category></item><item><title><![CDATA[【项目实践】公寓租赁项目(一)：基于SpringBoot公寓房间支付方式接口开发]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153345973</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153345973</guid><author>BeingACoder</author><pubDate>Fri, 17 Oct 2025 01:00:00 +0800</pubDate><description><![CDATA[本文介绍了支付方式管理模块的三个核心接口实现：1.查询支付方式列表接口，使用MybatisPlus的QueryWrapper和实体类注解简化查询逻辑；2.保存/更新支付方式接口，通过@TableField注解自动处理创建和更新时间；3.逻辑删除支付方式接口。重点阐述了使用MybatisPlus的特性优化开发：包括逻辑删除配置、自动填充时间字段等技巧，同时说明了Knife4j文档工具的接口分组和命名方法。这些实现方案简化了CRUD操作，提高了开发效率。]]></description><category></category></item><item><title><![CDATA[【每日一道LeetCode】LeetCode349：两个数组的交集]]></title><link>https://blog.youkuaiyun.com/BeingACoder/article/details/153387440</link><guid>https://blog.youkuaiyun.com/BeingACoder/article/details/153387440</guid><author>BeingACoder</author><pubDate>Fri, 17 Oct 2025 00:00:00 +0800</pubDate><description><![CDATA[【摘要】本文介绍求两个数组交集的算法，要求结果元素唯一且不考虑顺序。使用HashSet存储nums1元素，再遍历nums2检查是否存在，将交集存入结果集，最后转换为数组返回。核心思路是：1）创建两个HashSet分别存储元素和结果；2）两次遍历分别进行存储和判断；3）通过stream转换结果类型。代码包含空数组判断，时间复杂度O(m+n)，空间复杂度O(m)。]]></description><category></category></item></channel></rss>