Spring Boot 项目中的响应式应用(Reactive Web)与传统 MVC:原理区别、代码对比与适用场景

Spring Boot 项目中的响应式应用(Reactive Web)与传统 MVC:原理区别、代码对比与适用场景

在 Spring Boot 项目中,开发者经常需要在传统 Spring MVC 和响应式 WebFlux 之间做出选择,尤其当配置文件中出现 spring.main.web-application-type: reactive 时。本文将从底层原理、线程模型、I/O 处理方式、适用场景等角度详细对比两者,并通过实际代码示例说明差异。

1. 核心原理对比

维度传统 Spring MVC (Servlet-based)Spring WebFlux (Reactive / Non-blocking)
编程范式命令式(Imperative)声明式 + 响应式(Declarative + Reactive)
底层 I/O 模型阻塞 I/O(Blocking I/O)非阻塞 I/O(Non-blocking I/O)
线程模型线程-per-请求(每个请求独占一个线程)事件循环 + Reactor 线程池(少量线程处理大量连接)
请求处理流程请求 → 线程池分配线程 → 阻塞等待 I/O → 返回响应请求 → 事件循环注册回调 → 非阻塞等待 → 回调执行
并发瓶颈线程数上限(默认 200)→ 高并发时线程耗尽、上下文切换严重线程数极少(默认 CPU 核数 × 2)→ 并发能力极高
资源利用率线程阻塞时 CPU 空闲,资源浪费严重线程不阻塞,CPU 利用率高,内存占用低
背压(Backpressure)无原生支持,高负载时容易雪崩原生支持(Publisher 控制生产速度,避免下游崩溃)
事件驱动来源Servlet 容器事件(Tomcat/Jetty)Netty 事件循环 + Reactor 的 Scheduler
异常处理同步抛出异常,线程栈可追踪异步异常通过 Mono/Flux 传播,栈追踪较复杂

传统 MVC(Servlet)原理简述

  1. 客户端请求到达 Tomcat/Jetty
  2. Servlet 容器从线程池取一个线程处理该请求
  3. 线程执行 Controller 方法
  4. 如果遇到数据库、网络 I/O,线程会阻塞等待(挂起)
  5. I/O 完成后继续执行,响应返回,线程归还线程池
  6. 高并发时线程池耗尽 → 请求排队 →

Read more

去AI味提示词大全:25个实用Prompt帮你降低AI率

去AI味提示词大全:25个实用Prompt帮你降低AI率 说实话,我之前也是那种直接复制AI生成内容就交上去的人。结果可想而知——知网AIGC检测率直接飙到92%,导师看完脸都绿了。后来花了大半个月研究怎么降AI率,试了各种方法,踩了无数坑,总算摸索出一套比较靠谱的提示词体系。 今天把这25个去AI味提示词整理出来分享给大家,都是我反复测试过的,配合专业降AI工具使用效果更好。 为什么提示词能降低AI率? 在聊具体的降AI Prompt之前,先说说原理。 AI检测工具判断内容是否由AI生成,主要看几个维度:词汇多样性、句式结构、语义连贯模式、以及一些"AI味"特征词。比如"首先…其次…最后"这种排列组合,"值得注意的是"这种过渡词,AI特别喜欢用。 所以我们的提示词策略就是:从源头上让AI生成的内容更像人写的。 不过我得先说一句大实话:光靠提示词,降AI率是有上限的。根据我的测试,好的提示词大概能把AI率从90%+降到40%-60%左右。

告别“只会聊天”的AI!OpenClaw小白入门:定位、部署、场景全攻略

告别“只会聊天”的AI!OpenClaw小白入门:定位、部署、场景全攻略

摘要 本文专为OpenClaw小白打造,全面拆解这款开源AI智能体框架的核心内容,帮你快速理清OpenClaw的定位、核心特点与使用价值——它并非传统聊天机器人,而是能直接操控电脑/服务器、自动完成办公自动化、文件处理、代码开发等真实任务的“数字员工”。文中涵盖小白必知的核心能力、适用场景、极简部署步骤、安全注意事项,以及与传统AI工具的关键区别,同时附上生态社区资源,搭配内容逻辑图,让零基础用户也能快速入门,轻松上手OpenClaw,解锁AI高效干活新方式。 OpenClaw(俗称 “小龙虾”)是本地优先、开源免费、能真正动手执行任务的 AI 智能体框架,核心是让 AI 从 “聊天” 变成 “干活”。作为小白,你需要先掌握它的定位、核心能力、部署与使用、安全与隐私、生态与扩展这 5 块关键内容。 一、OpenClaw 是什么(一句话看懂) OpenClaw 是开源、

AI实践(3)Token与上下文窗口

AI实践(3)Token与上下文窗口

AI实践(3)Token与上下文窗口 Author: Once Day Date: 2026年3月2日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: AI实践成长_Once-Day的博客-ZEEKLOG博客 参考文章:Documentation - Claude API DocsOpenAI for developersPrompt Engineering GuidePrompt Engineering Guide: The Ultimate Guide to Generative AICompaction | OpenAI APIContext windows - Claude API DocsEffective context engineering for AI agents \ Anthropic大模型入门必知:一文搞懂Token概念,看完这篇终于懂了! -

【码动四季】Trae + 腾讯地图 MCP 实战:让 AI 直接调用地图能力,一步到位

【码动四季】Trae + 腾讯地图 MCP 实战:让 AI 直接调用地图能力,一步到位

目录 前言 一、关于腾讯地图及其MCP 1、腾讯地图 2、腾讯地图的MCP 二、Trae中腾讯地图的不足 1、MCP市场中的地图 2、基础配置介绍 三、Trae中如何配置腾讯地图MCP 1、腾讯地图MCP 介绍 2、接入方式 步骤1:获取腾讯地图API Key 步骤2:确认腾讯地图MCP接入地址 3、Trae中MCP配置 四、结果认证 1、案例背景 2、步骤解析 3、成果展示 4、未来展望 五、总结 说明:本文为AtomGit 码动四季.开源同行 征稿活动参与文章。 前言         在AI赋能开发的当下,地理信息服务已成为众多应用的核心支撑,从路径规划到位置检索,从物流优化到社交场景适配,