跳到正文
Elaine Blog
返回

Spring MVC 启动、映射与参数绑定

Spring 生态与源码

Spring MVC 的核心流程是:DispatcherServlet 接收请求,HandlerMapping 找处理器,HandlerAdapter 调用控制器,参数解析器把 HTTP 输入转换成 Java 参数。

Table of contents

Open Table of contents

运行映射实验

GreetingController下载声明 /greetings

mvn -Dtest=SpringSourceLabTest#mvcMapsGreetingController test

测试加载 RequestMappingHandlerMapping,确认映射基础设施和控制器结果。完整 HTTP 测试还应使用 MockMvc 验证状态码、JSON 与过滤器。

DispatcherServlet 初始化什么

DispatcherServlet 启动时从 WebApplicationContext 查找或创建 HandlerMapping、HandlerAdapter、异常解析器和视图解析器等策略组件。它不直接反射调用每个控制器。

RequestMappingHandlerMapping 扫描控制器方法,把路径、HTTP 方法、媒体类型和参数条件注册为映射。冲突映射会在启动期失败,比运行时随机选择更安全。

参数由解析器逐个完成

HandlerAdapter 为方法参数选择 HandlerMethodArgumentResolver

数据绑定不是安全边界。只暴露允许客户端修改的 DTO 字段,使用 Bean Validation 做格式约束,并在领域层检查权限和业务不变量。

内容协商决定表示形式

Accept 表示客户端能接收什么,Content-Type 表示请求正文是什么。没有可用 Converter 时会得到 415 或 406;排查时检查头部、控制器 consumes/produces 和实际依赖。

下一步

阅读Spring MVC 请求异常与响应流程,实现稳定错误协议并分清 Filter、Interceptor 与 Advice 顺序。


分享这篇文章:

上一篇
声明式事务的传播、隔离与失效场景
下一篇
Spring MVC 请求、异常与响应流程