Spring MVC中 的區別分析


個人最簡單的使用理解:

<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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM