SpringMVC源码总结(二)mvc:mvc:annotation-driven背后的那些事


在Spring MVC框架中,`mvc:annotation-driven`是Spring MVC配置中的一个重要元素,它使得我们的应用能够支持基于注解的控制器、数据绑定、格式化转换器和服务端验证等功能。这篇博客将深入探讨`mvc:annotation-driven`背后的工作原理以及相关的知识点。 `mvc:annotation-driven`是一个XML配置元素,它简化了对Spring MVC应用中注解驱动功能的配置。通过添加这个元素,我们无需手动注册如`HandlerMapping`、`HandlerAdapter`、`ConversionService`、`Validator`等组件,它会自动配置这些核心组件,使得基于注解的控制器能够正常工作。 1. **基于注解的控制器**:Spring MVC允许我们在控制器类的方法上使用`@RequestMapping`注解来定义HTTP请求映射。`mvc:annotation-driven`会自动配置`RequestMappingHandlerMapping`和`RequestMappingHandlerAdapter`,这两个组件负责解析`@RequestMapping`并调用相应的处理方法。 2. **数据绑定**:`@RequestParam`、`@PathVariable`、`@ModelAttribute`等注解用于将请求参数绑定到方法参数上。`mvc:annotation-driven`会配置`WebDataBinder`和`HandlerMethodArgumentResolver`,它们负责解析请求参数并将数据绑定到对象中。 3. **格式化转换器**:`@DateTimeFormat`、`@NumberFormat`等注解可以用于日期和数字的格式化。`mvc:annotation-driven`会自动注册一系列的`FormattingConversionService`,处理不同类型的转换。 4. **服务端验证**:通过`@Valid`和`javax.validation`的注解,我们可以实现对模型对象的验证。`mvc:annotation-driven`会自动配置`LocalValidatorFactoryBean`,提供JSR-303/JSR-349的验证支持。 5. **异常处理**:Spring MVC提供了`@ExceptionHandler`注解来处理特定的运行时异常。`mvc:annotation-driven`会确保异常处理器`HandlerExceptionResolver`的正确配置。 6. **消息转换器**:Spring MVC使用消息转换器将HTTP请求体和响应体与Java对象之间进行转换。例如,`HttpMessageConverter`家族中的`StringHttpMessageConverter`、`Jackson2JsonHttpMessageConverter`等。`mvc:annotation-driven`会默认配置常用的转换器。 7. **上传文件**:`@RequestParam("file") MultipartFile file`用于处理文件上传。Spring MVC会自动配置`CommonsMultipartResolver`来支持文件上传。 8. **RESTful支持**:`mvc:annotation-driven`还支持RESTful风格的HTTP方法,如GET、POST、PUT、DELETE等,以及HTTP头的处理。 9. **国际化**:虽然`mvc:annotation-driven`不直接处理国际化,但它配合Spring的其他配置,如`ResourceBundleMessageSource`,可以实现基于注解的国际化消息。 以上是`mvc:annotation-driven`主要涉及的一些核心知识点。了解这些内容有助于我们更好地理解Spring MVC的运作机制,并在开发过程中更高效地利用其特性。在实际项目中,开发者可以根据需求调整`mvc:annotation-driven`的配置,添加或移除特定的组件,以满足更具体的业务需求。



















































- 1


- 粉丝: 389
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 石油化工企业设计防火规范》(2009版).doc
- 大厦简介2.0修改状态(0次).doc
- 合同副经理与合同部长责任书(样本).docx
- 2015年全国研究生数学建模竞赛B题《数据的多流形结构分析》论文及附件。.zip
- 高气压对机体的影响(1).pptx
- 9衡重式下挡墙施工技术交底(000).doc
- 城市地下综合管廊案例-20151013-培训课件.pptx
- 新疆柯坪县群众文化中心工程建设监理月报.doc
- 公路造价确定与控制200道练习题.doc
- mpvue框架仿滴滴出行微信小程序.zip
- 房屋入住流程图.docx
- S-工程建设标准强制性条文.doc
- 【风险预案】血液透析风险预案完整版.pdf
- 小学语文作业布置出题网站源码简单方便的作业练习册随机出题网站源码支持打印
- 两个做给健身房预约课程的微信小程序.zip
- [江苏]商住综合体项目可行性分析报告(97页-图文结合详述)1.doc


