<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[caleb_520的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/caleb_520</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; caleb_520]]></copyright><item><title><![CDATA[基于springmvc系统，如何跟踪会话过期，浏览器会话标识是否收到正常响应，存储，并在后续请求保持携带]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/157178016</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/157178016</guid><author>caleb_520</author><pubDate>Tue, 20 Jan 2026 15:25:35 +0800</pubDate><description><![CDATA[摘要： 针对SpringMVC系统会话闪退问题，提出一套浏览器到服务器的排查方案。步骤： 浏览器端：通过开发者工具验证登录时是否正常接收并存储JSESSIONID，检查后续请求是否携带该Cookie。若闪退请求未携带或值异常，问题在浏览器端；若携带但返回登录页，问题在服务器端。 服务器端： 日志增强：部署HttpSessionListener监听器，记录Session创建、销毁及用户属性变更，重点捕获销毁原因。 过滤器跟踪：全局Filter记录请求的Session状态，分析失效时间点。 线程分析：通过jst]]></description><category></category></item><item><title><![CDATA[SpringBoot+MyBatis实现数据库字段加密]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/156222486</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/156222486</guid><author>caleb_520</author><pubDate>Wed, 24 Dec 2025 09:31:38 +0800</pubDate><description><![CDATA[本文介绍了基于SpringBoot+MyBatis实现数据库字段加密的方案。通过自定义@Encrypt注解标记需要加密的实体类字段，利用AES算法实现加密工具类，并设计加密拦截器和解密拦截器分别在数据写入和读取时自动处理。该方案适用于用户信息、金融数据等敏感信息的保护，同时强调了密钥管理、算法选择和性能优化等安全注意事项。实现流程包括业务层→系统拦截器→数据库→系统拦截器→返回结果的完整处理链。]]></description><category></category></item><item><title><![CDATA[Vue2中能否实现输入中文自动转化为拼音, 且不带音调]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/156084273</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/156084273</guid><author>caleb_520</author><pubDate>Fri, 19 Dec 2025 15:24:59 +0800</pubDate><description><![CDATA[Vue2实现中文转拼音（不带音调）的5种方案： 使用pinyin库（推荐）：安装后通过方法转换，设置STYLE_NORMAL去除音调 自定义指令：封装成全局指令自动转换 计算属性：实时响应输入变化 防抖优化：减少频繁转换的性能消耗 替代库tiny-pinyin：提供类似功能 关键点： 推荐方案一或三，简单易维护 注意处理多音字和非中文字符 大量文本需考虑防抖/节流优化]]></description><category></category></item><item><title><![CDATA[Excel导出问题：accessExternalStylesheet]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/155691933</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/155691933</guid><author>caleb_520</author><pubDate>Mon, 08 Dec 2025 09:28:50 +0800</pubDate><description><![CDATA[摘要：文章分析了使用Hutool+Poi导出Excel时出现的IllegalArgumentException异常，该问题源于Java 8后XML处理器的安全限制。解决方案包括：1)强制指定安全XML处理器；2)排除老旧依赖版本。针对大数据量导出，推荐使用ExcelUtil.getBigWriter()配合分页查询和分批写入策略，通过SXSSFWorkbook实现流式处理，有效控制内存占用。文章提供了完整代码模板，并验证该方案可支持200万行数据的稳定导出，内存占用低于200MB。]]></description><category></category></item><item><title><![CDATA[解构赋值+扩展运算符在数组和对象上的应用例子]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/155316369</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/155316369</guid><author>caleb_520</author><pubDate>Thu, 27 Nov 2025 15:33:55 +0800</pubDate><description><![CDATA[本文展示了ES6解构赋值和扩展运算符在数组和对象处理中的实用技巧。数组应用包括元素提取、合并、去重、复制等操作；对象应用涵盖属性提取、合并、过滤、嵌套处理等场景。还介绍了数组与对象混合使用的典型示例，如API数据处理、表单验证、状态更新等。这些技巧能显著提升代码简洁性和可读性，适用于现代前端开发中的各种数据处理需求。]]></description><category></category></item><item><title><![CDATA[vue cli的介绍]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/154691014</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/154691014</guid><author>caleb_520</author><pubDate>Tue, 11 Nov 2025 14:20:49 +0800</pubDate><description><![CDATA[摘要： Vue CLI 是 Vue.js 官方提供的基于 Webpack 的标准化开发工具链(现已进入维护模式，推荐改用 Vite)。它包含 CLI 命令行工具(@vue/cli)、核心服务(@vue/cli-service)和插件系统，支持通过&quot;vue create&quot;快速搭建项目，提供零配置原型开发和可扩展的构建配置。安装需 Node.js v8.9+，通过 npm/yarn 全局安装后即可使用 vue 命令创建和管理项目，支持图形化界面(vue ui)操作。虽然新版覆盖了 Vue C]]></description><category></category></item><item><title><![CDATA[Failed to start nginx.service: Unit nginx.service not found.]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/153780719</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/153780719</guid><author>caleb_520</author><pubDate>Thu, 23 Oct 2025 14:30:20 +0800</pubDate><description><![CDATA[【摘要】解决Nginx源码安装后&quot;nginx.service not found&quot;问题的方法：1）在/etc/systemd/system/目录下创建nginx.service文件；2）正确配置服务文件，需特别注意路径需与实际安装路径一致；3）执行systemctl daemon-reload重新加载配置；4）启动服务并验证状态；5）设置开机自启。关键步骤是确保PID文件路径和各项执行命令路径配置正确。]]></description><category></category></item><item><title><![CDATA[如何实现文件批量重命名后再进行批量打包下载]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/153633181</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/153633181</guid><author>caleb_520</author><pubDate>Mon, 20 Oct 2025 15:55:57 +0800</pubDate><description><![CDATA[本文介绍了批量下载并重命名文件的实现方法。系统存储的文件使用UUID命名，但下载时需要恢复原始文件名。初始方案直接压缩源文件，优化后方案通过创建临时目录，将文件复制并重命名后再压缩。主要步骤包括：1)创建临时目录；2)遍历文件列表，验证原始文件名合法性；3)将源文件复制到临时目录并重命名；4)压缩重命名后的文件；5)发送压缩包；6)清理临时文件。优化方案使用Hutool工具类处理文件操作，确保文件名合法性的同时实现了批量重命名下载功能。]]></description><category></category></item><item><title><![CDATA[如何能成功在centos7下安装nodejs18+以上版本]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/150557972</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/150557972</guid><author>caleb_520</author><pubDate>Wed, 20 Aug 2025 17:02:05 +0800</pubDate><description><![CDATA[在CentOS 7系统安装Node.js 20.18.0时会出现GLIBC等依赖版本过低的问题。解决方案包括：1）升级GCC至8版本并配置软链接；2）升级make至4.3版本；3）更新libstdc++.so.6库文件；4）安装glibc-2.28并重新编译。需注意使用阿里云镜像源，并安装bison、flex等依赖工具。完成这些系统级更新后，Node.js 20+版本即可正常运行。]]></description><category></category></item><item><title><![CDATA[centos7下卸载nodejs源码包]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/150552393</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/150552393</guid><author>caleb_520</author><pubDate>Wed, 20 Aug 2025 13:48:17 +0800</pubDate><description><![CDATA[摘要：本文介绍了在CentOS 7上彻底卸载源码安装的Node.js的步骤，包括删除软链接（node、npm、npx）、源码目录、全局npm包和缓存文件，以及检查残留配置文件和验证卸载。注意事项包括权限问题、推荐使用nvm管理多版本以及清理环境变量设置。]]></description><category></category></item><item><title><![CDATA[springboot如何通过提供的注解方式来操作Redis]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/150519189</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/150519189</guid><author>caleb_520</author><pubDate>Tue, 19 Aug 2025 10:53:35 +0800</pubDate><description><![CDATA[本文介绍了Spring Boot中使用Redis缓存注解的方法。首先需要在配置类添加@EnableCaching开启缓存支持，然后介绍了常用注解：@Cacheable(查询缓存)、@CachePut(更新缓存)、@CacheEvict(删除缓存)和@Caching(组合操作)。文章还说明了如何自定义Key生成器、设置条件缓存，以及配置Redis连接和添加相关依赖的注意事项。最后指出被注解方法需为public，自调用不触发缓存，且复杂对象需实现Serializable接口。]]></description><category></category></item><item><title><![CDATA[@Cacheable 对数据库变更的响应机制]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/150497218</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/150497218</guid><author>caleb_520</author><pubDate>Mon, 18 Aug 2025 17:25:18 +0800</pubDate><description><![CDATA[Redis缓存与数据库数据不一致问题可通过以下方式解决：1.使用@CacheEvict主动清除缓存，在数据修改方法上标注清除特定键或整个缓存区域；2.设置缓存过期时间(TTL)，通过Redis配置自动失效过期数据；3.@Cacheable机制是被动的，仅当方法调用时检查缓存键是否存在，不会自动监听数据库变化。关键方案是在数据变更时同步处理缓存更新，可采用手动清除或设置合理过期时间的组合策略来保证数据一致性。]]></description><category></category></item><item><title><![CDATA[当需要在一个方法中清除多个缓存时，@CacheEvict注解能否实现这个需求]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/150413967</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/150413967</guid><author>caleb_520</author><pubDate>Fri, 15 Aug 2025 09:29:29 +0800</pubDate><description><![CDATA[在Spring中清除多个Redis缓存数据，可通过以下方法实现： 使用多个@CacheEvict注解 通过@Caching组合多个@CacheEvict 设置allEntries=true清除整个缓存区域 动态生成多缓存键 事件驱动缓存清除（高级） 最常用的是@Caching组合方式，示例： @Caching(evict={ @CacheEvict(value="userDetail",key="#userId"), @CacheEvict(value="userList",key="'allUsers'"]]></description><category></category></item><item><title><![CDATA[基于 RedisTemplate 的分页缓存设计]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/150394888</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/150394888</guid><author>caleb_520</author><pubDate>Thu, 14 Aug 2025 16:53:23 +0800</pubDate><description><![CDATA[文章摘要：针对后台分页查询业务，提出基于Redis的分页缓存设计方案。通过RedisUtil工具统一管理缓存键命名规范，将查询条件哈希化处理作为键的一部分，确保不同查询条件对应不同缓存。方案包含分页缓存键生成、条件哈希处理、缓存清理等功能，并提供了业务层调用示例。同时提出安全优化措施，如空条件处理、动态TTL设置、防雪崩策略等，有效提升查询性能并保证缓存系统的稳定性。整个设计实现了查询条件与缓存键的智能映射，解决了分页查询中的缓存命中问题。]]></description><category></category></item><item><title><![CDATA[在springboot项目中是否可以使用两个不同地址的redis]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/150017928</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/150017928</guid><author>caleb_520</author><pubDate>Thu, 07 Aug 2025 17:27:16 +0800</pubDate><description><![CDATA[本文介绍了在SpringBoot项目中配置多Redis数据源的方法。通过修改pom.xml引入Jedis依赖，在application.yml中分别定义两个Redis实例的连接参数。关键实现步骤包括：为每个Redis实例创建独立的RedisConnectionFactory和RedisTemplate配置类，通过@Qualifier注解区分不同实例的模板。注意事项包括连接池优化、集群模式适配、序列化统一以及动态切换时的线程安全问题。该方案支持同时连接两个不同的Redis服务器，适用于需要访问多个Redis实]]></description><category></category></item><item><title><![CDATA[基于ConcurrentMap锁机制的NFS文件合并方案]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/149809875</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/149809875</guid><author>caleb_520</author><pubDate>Thu, 31 Jul 2025 17:09:31 +0800</pubDate><description><![CDATA[本文介绍了基于NFS的分片文件合并方案，通过ConcurrentMap实现并发控制。方案包含两个核心VO类：Chunk（存储分片文件信息）和FileInfo（存储合并文件信息）。合并过程包括：初始化NFS客户端、加锁控制、生成合并文件名、排序分片文件、使用try-with-resources进行流式合并、清理分片目录等步骤。关键技术点包括NFS路径规范处理、分片有效性验证、1MB缓冲区优化性能、递归删除分片目录等，最终返回合并文件的存储路径和元数据信息。]]></description><category></category></item><item><title><![CDATA[基于ConcurrentMap锁机制的NFS分片上传方案]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/149711836</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/149711836</guid><author>caleb_520</author><pubDate>Mon, 28 Jul 2025 11:33:48 +0800</pubDate><description><![CDATA[本文介绍了NFS(网络文件系统)的基本原理和应用场景，重点讲解了在CentOS7系统上配置NFS服务器的详细步骤，包括软件安装、共享目录设置、配置文件修改和防火墙配置等。针对文件上传场景，文章提出了分片上传方案以提高传输效率和可靠性，并详细阐述了基于Java的NFS客户端实现方法，包括并发处理、目录创建、文件写入等关键环节的代码实现。特别强调了高并发环境下如何通过ConcurrentMap锁机制确保目录创建的安全性和性能优化建议。该方案既保证了并发安全，又保持了代码的简洁性，适用于需要高效文件共享的系统环境]]></description><category></category></item><item><title><![CDATA[图片压缩优化结合Base64存储的系统改进方案]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/149644486</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/149644486</guid><author>caleb_520</author><pubDate>Fri, 25 Jul 2025 17:33:57 +0800</pubDate><description><![CDATA[本文针对Base64图片存储导致的接口传输过慢问题，提出了一套优化方案。通过使用Thumbnailator工具包，在维持Base64存储格式的前提下，实现了图片压缩优化。方案包含两种实现方式：1）原始图片流压缩后转Base64；2）对已存储的Base64图片进行解码重压缩。优化参数设置为质量压缩比0.6-0.8，最大宽度限制1920像素，并支持自动旋转和格式转换。同时建议启用GZIP压缩进一步减少传输数据量。测试数据显示优化后图片体积可减少60-70%，从5MB降至1.6MB，显著提升接口性能。]]></description><category></category></item><item><title><![CDATA[普通NFS文件传输的实现]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/149632043</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/149632043</guid><author>caleb_520</author><pubDate>Fri, 25 Jul 2025 10:33:55 +0800</pubDate><description><![CDATA[今天我给大家分享一下基于普通NFS文件传输方式的实现。虽然我前面已经介绍了NFS的基本概念，但是可能还是会有新朋友不清楚什么是NFS？​ 是一种，通俗理解就是的技术。它的核心目标是：​。有了NFS的基本概念，我今天分享UploadFileTest类，它主要功能是上传文件到NFS服务器，并监控上传速度，显示进度、速度、剩余时间等信息。类结构与代码分析hostvideoPath程序的入口点，创建一个实例调用方法，参数为一个本地文件（）和文件名（这是核心方法，负责上传文件并监控上传速度。方法参数为本地文件。]]></description><category></category></item><item><title><![CDATA[vscode如何设置目录分级显示]]></title><link>https://blog.youkuaiyun.com/caleb_520/article/details/143902328</link><guid>https://blog.youkuaiyun.com/caleb_520/article/details/143902328</guid><author>caleb_520</author><pubDate>Wed, 20 Nov 2024 09:35:02 +0800</pubDate><description><![CDATA[vscode如何设置目录分级显示]]></description><category></category></item></channel></rss>