[{"data":1,"prerenderedAt":100},["ShallowReactive",2],{"index_posts":3,"$f9rqWyDVeeZ8OL1zG0hdjV9HVRbx76I89kSzoNFdkqL0":87},[4,22,40,56,72],{"categories":5,"date":7,"description":8,"image":9,"path":10,"readingTime":11,"recommend":16,"tags":17,"title":20,"type":21,"updated":7},[6],"技术","2024-04-18 06:26:21","本文详细记录了在 macOS Big Sur 系统上基于 VMware Fusion 搭建三节点 Hadoop 2.7.7 集群的全过程。作者使用 CentOS 7 最小化安装以节省资源，配置固定 IP、关闭防火墙与 SELinux，并通过克隆虚拟机快速构建 master、s1、s2 三台节点。教程涵盖 JDK 与 Hadoop 安装、SSH 免密登录、时间同步、Hadoop 核心配置文件（core-site.xml、hdfs-site.xml 等）修改、环境变量设置及集群启动验证。此外，还扩展部署了 Spark 3.1.1，完成从 Hadoop 到 Spark 的完整大数据环境搭建。全文步骤清晰，适合初学者实践参考。","https:\u002F\u002Ffile.dhbxs.top\u002F2025\u002F10\u002Fioyknzke.png","\u002Fposts\u002Fd06540f2",{"text":12,"minutes":13,"time":14,"words":15},"23 min read",22.415,1344900,4483,1,[18,19],"Hadoop","大数据与云计算","Hadoop集群搭建（1主2从）","tech",{"categories":23,"date":25,"description":26,"image":27,"path":28,"readingTime":29,"recommend":34,"tags":35,"title":39,"type":21,"updated":25},[24],"开发","2025-11-01 16:37:52","本文记录了在使用LangChain4j集成AI服务时遇到的400错误问题排查过程。开发者在测试工具链功能时，因中断AI回复导致会话历史格式错误，引发大模型服务商报错。通过分析错误日志和工具调用流程，最终确定是中断会话导致的历史记录格式问题。文章详细记录了从错误表象到深层原因的分析过程，并附上工具调用流程图帮助理解问题本质。","https:\u002F\u002Ffile.dhbxs.top\u002F2025\u002F11\u002Fhhaqfien.webp","\u002Fposts\u002F4c27c0e",{"text":30,"minutes":31,"time":32,"words":33},"11 min read",10.405,624300,2081,2,[36,37,38],"AI应用开发","LLM","LangChain4j","LangChain4j工具调用中断引发JSON格式报错的问题调查",{"categories":41,"date":42,"description":43,"image":44,"path":45,"readingTime":46,"recommend":51,"tags":52,"title":55,"type":21,"updated":42},[24],"2025-11-01 12:37:11","基于CNN深度学习的交通标志识别系统，采用TensorFlow\u002FKeras构建卷积神经网络模型，实现高达95%的识别准确率。项目使用Python开发，配备tkinter图形界面，支持图片上传与实时识别。包含完整训练数据集处理、模型训练与评估流程，代码开源，适用于深度学习入门与计算机视觉实践。项目源码托管于GitHub与Gitee。","https:\u002F\u002Ffile.dhbxs.top\u002F2025\u002F10\u002Fybfbhwfk.webp","\u002Fposts\u002F4dCtXKfh",{"text":47,"minutes":48,"time":49,"words":50},"9 min read",8.59,515400,1718,0,[53,54],"深度学习","CNN","基于CNN深度学习网络的交通标志识别",{"categories":57,"date":58,"description":59,"image":60,"path":61,"readingTime":62,"recommend":67,"tags":68,"title":71,"type":21,"updated":58},[24],"2025-10-16","本文介绍了如何使用策略模式优化多重嵌套的条件判断逻辑。原始代码通过多层if-else处理不同b值下对字符串a的匹配规则，导致结构复杂、难以维护。作者提出采用策略模式进行重构：首先定义统一的策略接口GetStringStrategy，然后为每种b值（空字符串、\"0\"、\"1\"）分别实现具体的策略类，将内层判断逻辑封装其中；接着通过工厂类GetStringStrategyFactory统一管理策略实例，根据b值动态返回对应策略；最终调用方只需通过工厂获取策略并执行，无需关心具体实现。该方法有效解耦了条件判断逻辑，提升了代码的可读性、可维护性和扩展性。","https:\u002F\u002Ffile.dhbxs.top\u002F2025\u002F10\u002Flcbzyhed.webp","\u002Fposts\u002Fb0439536",{"text":63,"minutes":64,"time":65,"words":66},"6 min read",5.595,335700,1119,3,[69,70],"设计模式","Java","策略模式优化多重判断",{"categories":73,"date":74,"description":75,"image":76,"path":77,"readingTime":78,"recommend":83,"tags":84,"title":86,"type":21,"updated":74},[24],"2026-04-09 07:13:41","一篇关于如何开发自定义 Spring Boot Starter 的技术教程。文章以开发一个控制台 Banner 输出组件为例，手把手讲解了 Spring Boot 自动装配机制的实现原理和完整开发流程。文章通过实战案例揭示了 MyBatis-Plus 等第三方 Starter 背后的实现原理，帮助开发者理解 Spring Boot 的扩展机制。","https:\u002F\u002Ffile.dhbxs.top\u002F2026\u002F04\u002Fcsoexczb.webp","\u002Fposts\u002F7dc99e0",{"text":79,"minutes":80,"time":81,"words":82},"8 min read",7.525,451500,1505,4,[85,70],"SpringBoot","从零手写一个 Spring Boot Starter：深入理解自动装配原理",{"total":88,"annual":91,"categories":96,"tags":99},{"posts":89,"words":90},5,10906,{"2024":92,"2025":93,"2026":95},{"posts":16,"words":15},{"posts":67,"words":94},4918,{"posts":16,"words":82},[97,98],{"name":6,"posts":16},{"name":24,"posts":83},[18,19,36,37,38,53,54,69,70,85],1775740823375]