一、本周学习内容
1. Spring MVC核心架构
DispatcherServlet作用:理解前端控制器模式,作为所有请求的入口,负责分发到对应的处理器(HandlerMapping)。
注解驱动开发:掌握@Controller、@RequestMapping、@ResponseBody注解的使用,替代传统XML配置(如<mvc:annotation-driven/>)。
请求处理流程:从HTTP请求→HandlerMapping匹配→Controller方法执行→视图解析→``响应返回`的全链路分析。
2. 数据绑定与参数处理
类型转换与验证:使用@RequestParam、@PathVariable绑定URL参数,结合@Valid和BindingResult实现表单校验(如手机号正则校验)。
JSON交互:通过@RequestBody接收POST JSON数据,配置MappingJackson2HttpMessageConverter实现序列化/反序列化。
文件上传:集成MultipartFile接收文件,配置CommonsMultipartResolver处理上传逻辑。
3. 异常处理与拦截器
全局异常处理:使用@ControllerAdvice + @ExceptionHandler统一捕获异常(如NullPointerException返回友好错误页)。
登录拦截器:实现HandlerInterceptor接口,验证Session权限,拦截未登录请求(如preHandle方法中校验user属性)。
跨域配置:通过CorsFilter或@CrossOrigin注解解决前后端分离项目的跨域问题。
4. Spring与MyBatis整合
Controller层调用Service:依赖注入UserService,调用业务逻辑层方法,返回分页数据(结合PageHelper)。
事务回滚测试:在Controller中模拟异常,验证@Transactional注解的数据库回滚效果。
Spring MVC的核心在于解耦请求与响应,通过DispatcherServlet的调度能力,将开发者的关注点从Servlet API转移到业务逻辑。初学时对HandlerMapping和ViewResolver的协作机制感到困惑,但通过调试发现其本质是策略模式的应用(如RequestMappingHandlerMapping匹配URL到Controller)。