密码、微信、短信验证码……登录方式一多,LoginService 里就容易堆成一坨 if-else。用策略模式把每种登录封装成独立算法、工厂模式负责按类型创建实例,新增一种登录方式只加一个类、零改动老代码。这篇给一套能直接落地的 Spring Boot 实现。
奇妙感
把奇思妙想,做成能用的东西
后端出身,现在在做两个用大模型的产品:一个帮家里决定晚饭吃什么的 AI 厨神,一个给家乡话留档的方言翻译 App。这里记录我把想法做成东西的全过程——包括踩的坑。
- 30篇文章
- 7个分类
- 67个标签
最新文章
全部 30 篇 →很多人以为 Vert.x 快是因为"线程池调得好",其实差在架构哲学:Spring 传统模型是一个请求一个线程(阻塞),Vert.x 是事件循环 + 非阻塞。这篇把两套线程模型拆开讲,顺带说清 WebFlux 在哪、以及到底什么时候该用谁。
EventBus 是 Vert.x 的"神经系统",目标只有一件事——让分布式系统里各组件通过地址松耦合通信。一套 API 同时覆盖同 JVM、跨进程、跨集群,还自带三种通信模式和负载均衡。这篇把它的核心作用、三个通信模式、六个真实场景,以及一个地址怎么打通整套系统讲清楚。
大多数人把 RAG 效果不好归咎于选错向量库或 Embedding 模型,但脏数据一旦进索引,检索精度会断崖式下跌。这篇拆一个四层预处理 Pipeline,以及几个最容易被忽略的坑。
索引只是地基。真正决定 RAG 答得准不准的,是用户提问之后的召回、重排与生成——外加一个常被忽略的反馈闭环。这篇把在线链路拆开讲透。
用 Java 做 AI 应用的人越来越多,但多数人还在为不同厂商的 API 疲于适配。Spring AI 用一层抽象把 OpenAI、Ollama、Azure 全部统一,业务代码零改动切换模型。这篇拆解它的核心设计。
家里最难的不是做饭,是决定吃什么。我做了一个小程序模块,拍张冰箱照片就能推荐今晚的菜。这是一篇没上线的开发手记。
一个常被混用的概念:Function Calling 是模型本身的能力,MCP 是连接模型和工具的协议。这篇讲清楚它们在工具发现、安全边界、可移植性上的真实差别,以及 Spring AI 是怎么统一这两者的。