1. 程式人生 > >[劉陽Java]_SpringMVC與Struts2的對比_第12講

[劉陽Java]_SpringMVC與Struts2的對比_第12講

png 時代 ava 劃分 兩個 邏輯 設計思路 面試 http

今日來具體給講講SpringMVC與Struts2的對比,這樣方便朋友們在工作中或者是面試學習中對這兩者的區別有個更好的了解

技術分享圖片

把這張圖放在這裏,我是想說SpringMVC和Struts2真的是不一樣的,雖然在都有著核心分發器等相同的功能組件(這些由MVC模式本身決定的)

為什麽SpringMVC會贏得最後的勝利呢?談幾點我自己的看法:

第一、MVC框架的出現是為了將URL從HTTP的世界中映射到Java世界中,這是MVC框架的核心功能。而在URL這一點SpringMVC無疑更加優雅。

第二、從設計實現角度來說,我覺得SpringMVC更加清晰。即使我們去對比Struts2的原理圖和SpringMVC的類圖,它依然很讓人困惑,遠沒有SpringMVC更加直觀

技術分享圖片

SpringMVC設計思路:將整個處理流程規範化,並把每一個處理步驟分派到不同的組件中進行處理。這個方案實際上涉及到兩個方面:

  • 處理流程規範化—— 將處理流程劃分為若幹個步驟(任務),並使用一條明確的邏輯主線將所有的步驟串聯起來
  • 處理流程組件化—— 將處理流程中的每一個步驟(任務)都定義為接口,並為每個接口賦予不同的實現模式

為什麽SpringMVC會贏得最後的勝利呢?

我們可以看到,在JDK1.5普及之後,Annotation作為一種新興的Java語法,逐漸 被大家熟知和應用。這一點上SpringMVC緊跟了時代的潮流,直接用於請求-響應的映射。而Struts2卻遲遲無法在單一配置源的問題上形成突破。因為Spring的口碑和影響力也客觀程度上加深了大家對SpirngMVC是技術領導者的印象

[劉陽Java]_SpringMVC與Struts2的對比_第12講