SpringMVC 知识体系
1. SpringMVC 基础
- MVC 设计模式
- Model: 模型层,处理业务逻辑
- View: 视图层,负责界面展示
- Controller: 控制层,处理请求并协调模型和视图
- 核心组件
- DispatcherServlet: 前端控制器
- HandlerMapping: 处理器映射
- Controller: 控制器
- ModelAndView: 模型和视图
- ViewResolver: 视图解析器
- 工作流程
- 请求被 DispatcherServlet 接收
- 通过 HandlerMapping 找到对应的 Handler
- 调用处理器适配器执行 Handler
- Handler 执行完返回 ModelAndView
- 视图解析器解析视图
- 返回响应给客户端
流程说明
- 客户端发送请求:请求被发送到服务器端的 DispatcherServlet
- DispatcherServlet 查找 Handler:通过 HandlerMapping 找到处理该请求的 Handler(处理器)
- 调用处理器适配器执行 Handler:HandlerAdapter 调用具体的 Controller 处理业务逻辑
- Handler 执行完成:Controller 执行完毕后返回 ModelAndView 对象
- 视图解析:DispatcherServlet 将 ModelAndView 传给 ViewResolver 进行解析
- 渲染视图:View 对象结合 Model 数据渲染最终的视图
- 返回响应:渲染结果返回给客户端
核心组件职责
- DispatcherServlet:前端控制器,接收请求并协调整个处理流程
- HandlerMapping:根据请求找到对应的 Handler
- HandlerAdapter:调用具体的 Handler 处理请求
- Controller:处理具体的业务逻辑
- ModelAndView:包含数据模型和视图信息
- ViewResolver:根据视图名解析出实际的 View 对象
- View:负责渲染页面,将模型数据填充到视图中
2. 注解驱动开发
- 常用注解
@Controller
: 标识控制器@RequestMapping
: 映射请求路径@ResponseBody
: 返回数据而非视图@RequestParam
: 绑定请求参数@PathVariable
: 获取 URL 中的变量@RequestBody
: 接收请求体内容@RestController
: @Controller 和@ResponseBody 的结合@GetMapping
/@PostMapping
: 简化的 RequestMapping
3. 请求处理机制
- 请求参数绑定
- 简单类型参数绑定
- POJO 类型参数绑定
- 数组类型参数绑定
- 集合类型参数绑定
- 文件上传处理
- MultipartResolver 配置
- 接收文件的方法
- JSON 数据处理
4. 响应处理机制
- 视图技术
- JSP 视图
- Thymeleaf 视图
- Freemarker 视图
- 重定向与转发
- 数据返回
- ModelAndView 返回
- JSON 数据返回
- 文件下载
5. 异常处理
- 全局异常处理
@ExceptionHandler
@ControllerAdvice
SimpleMappingExceptionResolver
- 自定义异常
6. 拦截器与过滤器
- 拦截器(Interceptor)
- 过滤器(Filter)
7. 数据验证
8. REST 风格接口
- RESTful API 设计原则
- 资源表现形式
- HTTP 方法语义
- GET: 获取资源
- POST: 创建资源
- PUT: 更新资源
- DELETE: 删除资源
9. 安全控制
- Spring Security 集成
- 权限控制
- 认证与授权
- CSRF 防护
10. 高级特性
- 异步处理
@Async
注解- DeferredResult
- Callable 返回值
- WebSocket 支持
- 跨域处理
11. 测试
12. 性能优化
13. 与 Spring Boot 集成