SpringMVC

Spring提供了一個細緻完整的MVC框架。該框架爲模型、視圖、控制器之間提供了一個非常清晰的劃分,各部分耦合極低。Spring的MVC是非常靈活的,它完全基於接口編程,真正實現了視圖無關。視圖不再強制要求使用JSP,可以使用Velocity、XSLT或其他視圖技術。甚至可以使用自定義的視圖機制——只需要簡單地實現View接口,並且把對應視圖技術集成進來。Spring的Controllers由IoC容器管理。因此,單元測試更加方便。
SpringMVC框架以DispatcherServlet爲核心控制器,該控制器負責攔截用戶的所有請求,將請求分發到對應的業務控制器。
SpringMVC還包括處理器映射、視圖解析、信息國際化、主題解析、文件上傳等。所有控制器都必須實現Controller接口,該接口僅定義ModelAndViewhandleRequest(request,response)方法。通過實現該接口來實現用戶的業務邏輯控制器。
SpringMVC框架有一個極好的優勢,就是它的視圖解析策略:它的控制器返回一個ModelAndView對象,該對象包含視圖名字和Model,Model提供了Bean的名字及其對象的對應關係。視圖名解析的配置非常靈活,抽象的Model完全獨立於表現層技術,不會與任何表現層耦合:JSP、Velocity或者其他的技術——都可以和Spring整合。
但相對於Tapestry框架而言,SpringMVC依然是基於JSP/ServletAPI的。
總體上來看,SpringMVC框架致力於一種完美的解決方案,並與Web應用緊緊耦合在一起。這都導致了SpringMVC框架的一些缺點:
Spring的MVC與ServletAPI耦合,難以脫離Servlet容器獨立運行,降低了SpringMVC框架的可擴展性。
太過細化的角色劃分,太過煩瑣,降低了應用的開發效率。
過分追求架構的完美,有過度設計的危險。

發佈了111 篇原創文章 · 獲贊 5 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章