SpringMVC學習系列(1) 之 初識SpringMVC


1.前言:

與SpringMVC的結識源於個人之前想做一個微信公眾賬號的管理平台玩玩,既然要做就需要考慮平台的選擇問題。由於我的朋友只有一台運行了Linux系統的虛擬主機,且上面還運行有他自己的一些論壇。找不到windows虛擬主機,且肯定不能換朋友主機的系統。剛開始時打算用mono把之前做的.Net MVC項目搭的框架運行一下看看能不能用,發現根本跑不起來(項目用了Spring.NET當時mono和Spring.NET還不兼容,Sping.NET論壇說是由於mono的反射實現機制的問題。好消息是最新的Spring.NET項目已經支持mono,雖然官網上說還有一些bug,但這相對於之前完全不能運行已經好太多了,相信以后會越來越好。詳見SPRING-NET-MONO可能需要翻牆,你懂的…)。

於是決定選擇用java開發,最先開始看的是經典的SSH框架的一些資料,為此還特意買了一本書做參考,可沒看多少就有疑問了,讓我最不能接受的就是Struts2的一個action一個class的做法(評論中已經有朋友指出Struts2也可以實現多個Action方法的,非常感謝指正)。按照這種做法要實現一個對象的CURD基本操作就要4個class,而且java的一個class只能屬於一個class文件,這樣下來一個項目光action就要生成一堆class文件,而且文件里面只有一個action沒有多少內容,太啰嗦了,感覺這樣開發效率很低(以上感受僅是我當時看struts2是的感覺,如有不對的地方敬請批評指正),所以決定更換其它方式。恰好看到了Spring3的 Spring MVC的介紹,基於注解的controller,還有action的聲明方式像極了.Net MVC,當即決定采用,於是便有了該系列文章。

 

約定:本系列所用的Spring版本為:spring-framework-3.2.5.RELEASE,Hibernate版本為hibernate-release-4.2.8.Final,采用Spring+Hibernate+Spring MVC的組合方式。

 

2.什么是Spring MVC:

Spring MVC屬於SpringFrameWork的后續產品,它提供了構建 Web 應用程序的全功能 MVC 模塊,與Struts2一樣是一種優秀MVC框架,不同的是自Spring2.5引入了注解式controller及Spring 3以后的不斷完善,使得采用Spring MVC框架開發結構清晰明了,效率大大提高。

 

3.注解式Spring MVC響應流程:

繪圖1

 

4.重要的接口和類的簡單說明:

DispatcherServlet:前端控制器,用於接收請求。

HandlerMapping接口:用於處理請求的映射。

DefaultAnnotationHandlerMapping:HandlerMapping接口的實現,用於把一個URL映射到具體的Controller類上。

HandlerAdapter接口:用於處理請求的映射。

AnnotationMethodHandlerAdapter:HandlerAdapter接口的試下,用於把一個URL映射到對應Controller類的某個方法上。

ViewResolver接口:用於解析View。

InternalResourceViewResolver:ViewResolver接口的實現,用於把ModelAndView的邏輯視圖名解析為具體的View。


免責聲明!

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



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