1.前言:
與SpringMVC的結識源於個人之前想做一個微信公眾帳號的管理平台玩玩,既然要做就需要考慮平台的選擇問題。由於我的朋友只有一台運行了Linux系統的虛擬主機,而且上面還運行有他自己的一些論壇。找不到windows虛擬主機,絕對不能換朋友主機的系統。剛開始時打算用mono把之前做的.Net MVC專案搭的框架運行一下看看能不能用,發現根本跑不起來(專案用了Spring.NET當時mono和Spring.NET還不兼容,Sping.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。
以上就是SpringMVC學習系列(1) 之 初識SpringMVC的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!