我对Spring比较新,我对标签有点困惑。
在浏览完文档并查看不同帖子之后,似乎主要用途是Spring MVC需要将请求分派给@Controllers。
我创建了一个带有两个requestMappings的控制器:
@RequestMapping(method = RequestMethod.GET,value =" / health") @RequestMapping(method = RequestMethod.GET,value =" / test")
我在servlet.xml中测试了web应用程序是否有用,并且似乎没有任何区别是否被忽略。请求似乎仍然可以达到我的控制器。
任何人都可以向我解释一下这个标签的用途是什么吗?
提前致谢!
答案 0 :(得分:10)
默认情况下,Spring提供对@Controller
和@RequestMapping
的支持。但是,通过启用mvc:annotation-driven
,您可以获得处理映射到带注释的控制器方法的请求的支持,例如声明性验证,格式化和转换服务。引自新配置功能的spring's blog的摘录
它根据你的内容应用合理的默认值 类路径。这些默认值包括:
使用Spring 3 Type ConversionService作为JavaBeans PropertyEditors的更简单且更强大的替代方法
支持使用@NumberFormat格式化数字字段
- 如果Joda Time在类路径上,则支持使用@DateTimeFormat格式化日期,日历和Joda时间字段
- 如果JSR-303提供程序在类路径上,则支持使用@Valid验证@Controller输入
- 如果JAXB在类路径上,则支持读写XML
- 如果杰克逊在班级路径上,支持读写JSON
另一个相关的有用博客post
如果此标记未添加到XML,则必须手动进行 为HandlerAdapter,HandlerMapping等组件定义bean 绑定初始化程序,请求消息转换器等。此标记有帮助 注册以下组件。
- DefaultAnnotationHandlerMapping - 这是
HandlerMapping
将HTTP请求映射到处理程序方法的实现 使用@RequestMapping
注释定义。- AnnotationMethodHandlerAdapter - 负责扫描 控制器,用于识别用@MVC注释的方法(和参数) 注释。它扫描并缓存带注释的处理程序方法
@RequestMapping
。还处理@RequestParam
,@ModelAttribute
,@SessionAttributes
和@InitBinder
注释。- ConfigurableWebBindingInitializer - Web数据的初始化程序 活页夹。帮助声明性地配置Web Binder 验证人,转换服务,财产编辑等
- LocalValidatorFactoryBean - 实现验证器接口和 启用JSR303验证。这是注入的
ConfigurableWebBindingInitializer
。- FormattingConversionServiceFactoryBean - 一个转换工厂 返回日期和数字等基本对象的转换服务。 该工厂再次注入
ConfigurableWebBindingInitializer
。- 支持留言转换器
最后在官方docs
中有一个更正式的定义