[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"articles-4-10":3},{"code":4,"msg":5,"data":6},200,"成功",{"list":7,"total":95},[8,21,29,37,46,55,63,72,80,87],{"id":9,"title":10,"slug":11,"summary":12,"wordCount":13,"readingTime":14,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":19,"likeCount":18,"commentCount":18,"publishTime":20},"2002993510968520705","Apache Commons CollectionUtils 工具类详解：方法介绍与实战应用","apache-commons-collectionutils-xiangjie","1. 概述 org.apache.commons.collections4.CollectionUtils 是 Apache Commons Collections 库中的一个核心工具类，专门用于简化 Java 集合（List、Set、Map 等）的常见操作。它提供了丰富的静态方法，涵盖了集合的空值判断、集合运算、过滤转换、比较统计等多种场景，能够显著减少冗余代码，提高开发效率和代码可读性。 在传统的 Java 开发中，我们经常需要编写重复的代码来处理集合，例如手动判断集合是否为空、使用循环实现集合的交集和并集操作等。这些代码不仅冗长，而且容易出错。CollectionUtils 工具类的出现，使得我们能够通过一行代码完成复杂的集合操作，让开发人员更专注于业务逻辑而非底层实现。 工具类优势总结： 代码简洁性：减少模板代码，使集合操作更直观。 安全性：内置空指针安全处理，避免常见的...",17481,58,"0","",2,0,62,"2025-12-22 14:44:01",{"id":22,"title":23,"slug":24,"summary":25,"wordCount":26,"readingTime":27,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":14,"likeCount":18,"commentCount":18,"publishTime":28},"2002406272140374017","Nuxt Image 模块：现代图像优化与管理指南","nuxt-image-tuxiang-xiandai","1. 模块概述 1.1 什么是 @nuxt\u002Fimage？ @nuxt\u002Fimage 是 Nuxt.js 官方推出的图像优化模块，提供了自动化的图像处理、优化和响应式解决方案。它支持多种图像提供商（如 Cloudinary、Imgix 等），并内置了本地图像处理功能。 1.2 核心特性 自动优化：压缩、格式转换（WebP\u002FAVIF） 响应式图像：自动生成多尺寸版本 懒加载：提升页面加载性能 CDN 集成：支持主流图像 CDN 服务 开发友好：热重载、TypeScript 支持 2. 安装与配置 2.1 安装 2.2 基础配置 2.3 多提供商配置 3. 核心组件使用 3.1 nuxt-img 组件 3.2 nuxt-picture 组件 4. 高级功能与优化技巧 4.1 懒加载与占位符 4.2 性能优化配置 4.3 在组件中使用预设 5.",4970,16,"2025-12-20 23:50:29",{"id":30,"title":31,"slug":32,"summary":33,"wordCount":34,"readingTime":27,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":35,"likeCount":18,"commentCount":18,"publishTime":36},"2002406131962540034","Apache Solr 深度解析：全文检索、地理位置搜索与Elasticsearch全面对比","apache-solr-elasticsearch-quanwen","一、 Apache Solr 简介 Apache Solr 是一个基于 Apache Lucene 构建的高性能、开源的企业级搜索平台。Lucene 是一个强大的Java搜索库，而 Solr 在其基础上提供了更易于使用的 RESTful API、丰富的配置管理和强大的分布式能力。它被广泛应用于需要复杂搜索、数据导航和聚合分析的场景，如电商网站、新闻门户、大数据分析等。 Solr 的核心特性包括： 全文检索： 强大的文本索引和查询能力。 分词与文本分析： 丰富的语言处理管道。 高性能： 支持海量数据的近实时搜索。 高可用性： 通过 SolrCloud 提供自动化的分布式索引和容错。 灵活的模式定义： 支持模式化（Schema）和无模式（Schemaless）的数据导入。 丰富的查询语法： 支持布尔查询、模糊查询、范围查询、短语查询等。 综合管理界面： 内置的 Admin UI 方便用户进行核...",4841,34,"2025-12-20 23:49:59",{"id":38,"title":39,"slug":40,"summary":41,"wordCount":42,"readingTime":43,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":44,"likeCount":18,"commentCount":18,"publishTime":45},"2002405967373856770","Spring Boot 中的 @Valid 和 @Validated 详解：构建健壮的数据校验体系","spring-boot-valid-validated","1. 参数校验概述 在现代化的 Web 应用开发中，参数校验是保障系统健壮性的第一道防线。Spring Boot 通过集成 Bean Validation 规范，为我们提供了强大而灵活的校验机制。其中，@Valid 和 @Validated 是两个核心注解，它们虽然功能相似，但在不同场景下各有优势。 参数校验的主要目的： 数据完整性：确保接收到的数据符合预期格式 业务安全：防止恶意或错误数据进入业务逻辑层 用户体验：前端与后端校验结合，提供即时反馈 系统稳定：减少因数据异常导致的系统崩溃 2. @Valid 和 @Validated 的核心区别 特性 @Valid @Validated 来源 JSR-303\u002FJSR-380 标准 (javax.validation) Spring 框架自定义 分组校验 不支持 支持 嵌套校验 支持 支持 使用场景 方法参数、对象属性 方法参数、类、方法.....",14622,48,56,"2025-12-20 23:49:19",{"id":47,"title":48,"slug":49,"summary":50,"wordCount":51,"readingTime":52,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":53,"likeCount":18,"commentCount":18,"publishTime":54},"2002405842165493761","Spring Boot 实现文件秒传功能：从原理到实践","spring-boot-wenjian-chuan","1. 文件秒传技术原理 1.1 什么是文件秒传 文件秒传是指当用户上传一个文件时，如果服务器上已经存在相同的文件，则无需再次上传文件内容，直接返回上传成功。这种技术可以显著减少网络传输量，提升用户体验。 1.2 实现原理 秒传的核心原理是文件内容指纹比对： 客户端计算文件哈希值：在上传前，客户端计算文件的哈希值（如MD5、SHA-1等） 查询服务器文件状态：将哈希值发送到服务器查询是否已存在 服务器验证：服务器检查哈希值对应的文件是否存在 决定上传策略： 文件已存在：直接返回成功（秒传） 文件不存在：执行正常上传流程 1.3 哈希算法选择 算法 安全性 速度 适用场景 MD5 较低 快 一般文件校验 SHA-1 中等 较快 普通安全需求 SHA-256 高 较慢 高安全需求 2. 系统设计与实现 2.1 数据库设计 2.2 项目结构 3.",19092,63,50,"2025-12-20 23:48:50",{"id":56,"title":57,"slug":58,"summary":59,"wordCount":60,"readingTime":35,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":61,"likeCount":18,"commentCount":18,"publishTime":62},"2002405596807098369","Hutool JSON 校验的陷阱与最佳实践：深入解析与完整工具类","hutool-json-shijian-shenru","本文深度剖析 Hutool 中 JSON 字符串校验的常见陷阱，提供源码级解析，并给出一个功能完备的 JSON 校验工具类。 引言：JSON 校验的重要性 在现代 Java 开发中，JSON 作为数据交换的标准格式无处不在。Hutool 作为 Java 工具库的瑞士军刀，其 JSONUtil 类提供了便捷的 JSON 操作功能。然而，许多开发者在判断字符串是否为有效 JSON 时，常常掉入一些陷阱，导致潜在的数据解析错误和安全问题。 本文将深入剖析 Hutool 中 JSON 校验的常见问题，解读源码实现，并提供一个功能完备的 JSON 校验工具类，帮助开发者避免常见陷阱。 一、Hutool JSON 校验方法解析 1.",10325,41,"2025-12-20 23:47:51",{"id":64,"title":65,"slug":66,"summary":67,"wordCount":68,"readingTime":69,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":70,"likeCount":18,"commentCount":18,"publishTime":71},"2002405153498525697","深入解析RocketMQ核心架构：高可用、高性能背后的设计哲学","rocketmq-keyong-jiagou-gao","消息队列作为分布式系统的“血液”，承担着应用解耦、削峰填谷、异步处理的重要职责。在众多消息中间件中，RocketMQ 以其在高可用、高性能和高可靠性方面的卓越表现，成为了许多企业级应用的首选。本文将带你一口气深入 RocketMQ 的核心架构，揭秘其如何支撑起庞大的数据洪流。 一、 核心组件概览：四大支柱 RocketMQ 的架构主要由四个核心组件构成，它们各司其职，协同工作： NameServer（命名服务）： 轻量级的注册中心，堪称集群的“通讯录”。它的角色是无状态的，每个 NameServer 实例都保存着完整的集群路由信息。Broker 会向所有 NameServer 定时注册和发送心跳，而生产者和消费者则从 NameServer 获取最新的路由信息，从而找到目标 Broker。 Broker（代理服务器）： 消息的存储和转发中心，是真正干“体力活”的组件。它负责接收来自生产者的消...",3224,10,46,"2025-12-20 23:46:04",{"id":73,"title":74,"slug":75,"summary":76,"wordCount":77,"readingTime":78,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":14,"likeCount":18,"commentCount":18,"publishTime":79},"2002404939190562817","Java Stream：现代集合处理的优雅之道","java-stream-chuli-xiandai","引言：从命令式到声明式的转变 在Java 8之前，集合处理通常采用传统的for循环或迭代器模式，代码冗长且意图不够清晰。Java 8引入的Stream API彻底改变了这一现状，让我们能够以声明式、函数式的方式处理数据集合。本文将带你深入探索Stream的强大功能，并通过实际代码示例展示其优雅之处。 什么是Stream？ Stream（流）是Java 8中处理集合（Collection）数据的高级抽象。它不是一个数据结构，而是一个来自数据源（集合、数组等）的元素队列，支持聚合操作和并行处理。 核心特点： 不存储数据：流本身不存储元素，只是传递元素 函数式操作：支持lambda表达式，代码更简洁 延迟执行：中间操作延迟执行，终端操作触发实际计算 可并行化：轻松实现并行处理 Stream操作分类 1.",7216,24,"2025-12-20 23:45:14",{"id":81,"title":82,"slug":83,"summary":84,"wordCount":85,"readingTime":53,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":43,"likeCount":18,"commentCount":18,"publishTime":86},"2002404710047346690","高并发秒杀系统架构深度解密：从淘宝实战到SpringBoot实现","jiagou-jiemi-shendu-taobao","本文基于淘宝秒杀系统实战经验，结合SpringBoot技术栈，深度解析高并发秒杀系统的架构设计与实现方案。 引言：从一场价值10亿的秒杀事故说起 \"王工！秒杀活动开始3秒，服务器全挂了！\"凌晨2点接到这个电话时，我后背瞬间湿透。那是2019年双11前夕，我们团队负责的某品牌手机秒杀活动，因并发设计缺陷导致系统雪崩，直接损失预估10亿。正是这次惨痛教训，让我彻底掌握了高并发系统的核心要义。 一、业务场景分析：秒杀系统的四大核心挑战 真实业务场景：某品牌新款手机发售，10万台手机，100万人同时抢购。系统要在100毫秒内完成： 库存精准扣减（不能超卖） 订单高效创建（不能丢单） 实时结果返回（不能卡顿） 异常自动处理（不能崩溃） 二、完整秒杀系统架构设计 2.1 系统总体架构 2.2 SpringBoot项目依赖配置 三、核心模块实现详解 3.1 流量削峰：分布式限流实现 3.2 库存扣减：R...",15199,"2025-12-20 23:44:20",{"id":88,"title":89,"slug":90,"summary":91,"wordCount":92,"readingTime":93,"categoryId":15,"tags":16,"coverImage":16,"thumbnail":16,"status":17,"isTop":18,"isRecommended":18,"allowComments":18,"password":16,"viewCount":43,"likeCount":18,"commentCount":18,"publishTime":94},"2002404172320796674","深入理解MapUtils：Java Map操作利器指南","maputils-java-map","引言 在Java开发中，Map（映射）是一种极为常用的数据结构，用于存储键值对。虽然Java标准库提供了丰富的Map操作方法，但在实际开发中，我们经常需要更复杂、更便捷的操作。这正是Apache Commons Collections库中MapUtils发挥作用的地方。本文将深入探讨MapUtils的使用，展示它如何简化Map操作，提高代码的可读性和效率。 一、环境配置与依赖 在开始之前，需要将Apache Commons Collections4添加到项目中： Maven依赖： Gradle依赖： 二、MapUtils核心功能详解 2.1 创建和初始化Map 2.2 安全获取值 这是MapUtils最常用的功能之一，可以避免NullPointerException： 2.3 Map判空与验证 2.4 Map转换与反转 2.5 Map合并与比较 2.6 多层嵌套Map操作 2.7 迭代与过...",12935,43,"2025-12-20 23:31:51","43"]