Spring:解耦核心、企業級開發基石
- 地位:SSH 棧穩坐核心,輕量、高效、非侵入式
- 核心價值:IOC(控制反轉)完成元件裝配與生命週期管理;AOP(面向切面)橫向切開關注點(交易、快取、日誌、安全)
- 實戰觀察:Spring MVC 因 Struts/WebWork/Struts2 佔據視圖層主流,推廣受阻;AOP 多用於快取(ehcache)等基礎設施層,業務層以 IOC 為主
- 整合模式:Action 交由 Spring 管理、面向介面編程、DataSource/連線池統一配置,已成業界標準範式
Hibernate:ORM 領域經典,持久層標準化利器
- 解決痛點:物件模型與關聯式資料庫的「阻抗不匹配」
- 優勢:自動生成 SQL、HQL 簡潔強大、IDE(MyEclipse)可自動生成 POJO/Mapping,操作物件即操作資料庫
- 快取加成:二級快取配置得當,系統效能顯著提升
- Spring 整合:無縫支援聲明式交易、Session 管理、DAO 模板簡化
iBATIS:輕量、SQL 掌控力強的另類選擇
- 定位:半自動 ORM,開發者手寫 SQL,保留最大靈活度
- 適用場景:既有資料庫設計複雜/不規範、複雜報表/統計查詢、團隊 SQL 能力強
- 對比 Hibernate:複雜多表關聯、大數據量分頁、存儲過程呼叫等場景 iBATIS 更從容
- 組合:Struts + iBATIS + Spring 同樣構建高效架構(如巧手專案)
Struts:MVC 經典實現,事實標準地位難撼動
- 核心價值:多模組配置隔離、內建表單驗證、豐富標籤庫、與 Spring/Hibernate 黃金整合
- 現狀:非因完美無缺,而是成為「MVC 開發事實標準」,大中型專案首選
其他視圖層框架:JSF, Struts 2.0, WebWork
僅做技術偵察,未投入生產,讀者可自行評估 PoC。
架構選型建議
| 場景 | 推薦組合 | 理由 |
| 標準企業級應用、團隊熟悉度高 |
Struts + Spring + Hibernate (SSH) |
生態成熟、人才易招、風險可控 |
| 複雜 SQL、既有資料庫、報表密集 |
Struts + Spring + iBATIS |
SQL 完全掌控、效能可調優 |
| 新專案、追求現代化、前後端分離 |
Spring MVC / Spring Boot + MyBatis + Vue/React |
技術棧現代化、前後端解耦 |