个人最简单的使用理解:

<mvc:annotation-driven />是管理静态资源的,比如静态页面,返回JSON这些。

<context:annotation-config />是管理注解的,比如@Controller这些。

深入的解释:

官方文档:

https://spring.io/blog/2009/12/21/mvc-simplifications-in-spring-3-0/

https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-config

<mvc:annotation-driven />是在Spring 3.0中添加的标签,它执行以下操作:

  1. 配置Spring 3 Type ConversionService(PropertyEditors的替代方法)
  2. 添加对@NumberFormat格式化数字字段的支持
  3. 添加对@DateTimeFormat格式化日期,日历和Joda时间字段的支持,如果Joda Time在类路径上
  4. 如果JSR-303提供程序在类路径上,则添加对@Valid验证@Controller输入的支持
  5. 添加支持读写XML,如果JAXB在类路径(使用@RequestBody/@ResponseBody的HTTP消息转换)
  6. 添加对阅读和编写JSON的支持,如果Jackson位于类路径(与#5相同的行)

<context:annotation-config />在同一应用程序上下文中查找bean上的注释,并声明对@Autowired,@Resource,@Required,@PostConstruct等所有常规注释的支持。

题外说法(只测试了4.1.6的通过,其余版本没试过):

如果用了<context:component-scan />,其实<context:annotation-config />就可以不用了,默认前者已经提供了包的扫描功能和注解支持。

参考:

https://stackoverflow.com/questions/3977973/whats-the-difference-between-mvcannotation-driven-and-contextannotation

https://spring.io/blog/2009/12/21/mvc-simplifications-in-spring-3-0/

https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-config

https://scotch.io/@ethanmillar/spring-mvc-component-scan-annotation-config-annotation-driven

https://stackoverflow.com/questions/7414794/difference-between-contextannotation-config-vs-contextcomponent-scan

http://blog.csdn.net/blue_it/article/details/12612533

Spring MVC中<mvc:annotation-driven />和<context:annotation-config />的区别分析的更多相关文章

  1. Spring框架中<mvc:default-servlet-handler/>的作用

    优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...

  2. MVC中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别

    Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的. 1. Html.RenderPartial是直接将用户控件嵌入到界面上: <% ...

  3. 转载.Net MVC中Html.RenderPartial和Html.RenderAction 的应用与区别

    Html.Partial方法:是将视图内容直接生成一个字符串并返回, Html.RenderPartial方法是直接输出至当前HttpContext, 而Html.RenderAction还调用一下A ...

  4. 在spring配置文件中引入外部properties配置文件 context:property-placeholder

    在spring的配置文件中,有时我们需要注入很多属性值,这些属性全都写在spring的配置文件中的话,后期管理起来会非常麻烦.所以我们可以把某一类的属性抽取到一个外部配置文件中,使用时通用spring ...

  5. ASP.NET MVC中viewData、viewBag和templateData的使用与区别

    一:类型比较 1.1)ViewBag是动态类型(dynamic). 1.2)ViewData是一个字典型的(Dictionary)-->ViewDataDictionary. 1.3)TempD ...

  6. 转载ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别

    对这四个的区别做一个总结,清理一下思路,方便以后使用: 1.带有Render的方法返回值是void,在方法内部进行输出:不带的返回值类型为MvcHtmlString,所以只能这样使用:     @Ht ...

  7. asp.net MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别

    @Html.Action:需要有对应的Action,并且Action方法有返回值.(注:处理完业务逻辑同时,也需要返回所需值) @{Html.RenderAction}:需要有对应的Action,Ac ...

  8. Spring MVC 中的基于注解的 Controller【转】

    原文地址:http://my.oschina.net/abian/blog/128028 终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 H ...

  9. Spring MVC中基于注解的 Controller

         终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响 ...

随机推荐

  1. E20170628-hm

    forgery   n. 伪造; 伪造罪; 伪造物; 伪造签字; distribute   vt. 分配,散布; 散发,分发; 把…分类; [电] 配电; contribute to(contribu ...

  2. python 生成器函数.推导式.生成器表达式

    一.生成器 什么是生成器,生成器的实质就是迭代器 在python中有三种方式来获取生成器: 1.通过生成器函数 2.通过各种推导式来实现生成器 3.通过数据的转换也可以获取生成器 1 def func ...

  3. 题解报告:hdu 1162 Eddy's picture

    Problem Description Eddy begins to like painting pictures recently ,he is sure of himself to become ...

  4. Unicode ,UTF-8,assic, gbk, latin1编码 的区别

    1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...

  5. Coursera公开课-Machine_learing:编程作业3

    第四周 编程作业: Multi-class Classification and Neural Networks 这周作业与上一周有许多相同的部分,比如longistic regression中的lr ...

  6. Android studio如何显示代码行数

    1.首先打开as:File-->Settings... 2.Editor-->General-->Appearence 3.右边show line numbers 4.依次点击app ...

  7. 如何成为一名出色的Oracle数据库管理员

    主要针对Oracle DBA在成长阶段的定位,学习方法等几大方面进行了经典的论述,详细内容请参考下文. 一.定位 Oracle分两大块,一块是开发,一块是管理.开发主要是写写存储过程.触发器什么的,还 ...

  8. TensorFlow学习---入门(一)-----MNIST机器学习

    参考教程:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html 数据下载地址:http://wiki.jikexueyuan.com ...

  9. html5——全屏显示

    基本概念 1.HTML5规范允许用户自定义网页上任一元素全屏显示 2.requestFullscreen() 开启全屏显示.cancleFullscreen() 关闭全屏显示 3.不同浏览器兼容性不一 ...

  10. SQL基本操作——row_number() over()

    row_number() 与over()是在一起使用的,作用就是对表进行排序并记数. 语法: ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression ...