大多数开发者把Spring Boot当自动售货机——投币、出货,不问过程。但你的HTTP请求从进门到变成JSON出门,中间要过10道安检,而官方文档对此只字不提。

第一道关卡是Tomcat的Connector,它把字节流翻译成HttpServletRequest。接着FilterChain排队安检,Spring Security的过滤器在这里搜身。然后DispatcherServlet登场,像机场调度员一样,拿着@RequestMapping的航班表找对应的Controller。

真正魔幻的是参数解析环节。@PathVariable和@RequestBody要经历HandlerMethodArgumentResolver的拆解,Jackson在背后把JSON变成Java对象。如果这里出了错,你看到的不是业务异常,而是HttpMessageNotReadableException——一个让你以为是前端问题的陷阱。

Controller执行完,返回值还要过ReturnValueHandler,被包装成ModelAndView,再交给MessageConverter压回JSON。最后经过Tomcat的OutputBuffer,才变成你看到的响应体。

Spring团队某核心成员在内部邮件里提过:「这10步里任意一步抛异常,栈追踪都能长到让人放弃排查。」去年某电商大促,一个团队花了6小时才发现问题出在第7步的自定义Converter,而非他们怀疑的数据库连接池。