首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 三大框架起源演進:Struts、Hibernate、Spring 如何重塑企業級開發

     編輯:Java 相關知識

前言

Struts、Hibernate、Spring 構成了經典「SSH」架構,統治 Java Web 開發超過十年。理解其誕生背景與演進邏輯,有助於把握現代框架設計哲學(如 Spring Boot、Quarkus、Micronaut)。

一、遠古時代:JSP + Servlet + JavaBean

  • 模式:JSP 負責視圖(含大量 `<% %>` Java 代碼),Servlet 控制流程,JavaBean 封裝數據。
  • 痛點:
    1. JSP 混雜 HTML 與邏輯,難維護、難分工。
    2. Servlet 承擔過多職責(跳轉、業務、參數處理),耦合度高。
    3. JDBC 操作繁瑣:獲取連接、拼 SQL、手動映射 ResultSet、關閉資源。
    4. 層間調用靠 new 硬編碼,強耦合,難測試、難復用。

二、Struts 1.x(2000 年誕生):MVC 規範化

  • 核心:單一 ActionServlet 前端控制器,配置 struts-config.xml 映射請求。
  • 分層:
    • Action:處理請求、調用業務、返回 ActionForward 跳轉。
    • Form Bean:自動填充表單數據,校驗。
    • JSP + Taglib:邏輯標籤替代 Scriptlet,頁面無 Java 代碼。
  • 局限:Action 易膨脹,表單驗證僵化,測試困難(依賴 Servlet API)。

三、Hibernate(2001 年):OR 映射解放 JDBC

  • 核心思想:面向對象持久化。POJO ↔ 數據庫表映射(.hbm.xml / 註解)。
  • 關鍵能力:
    • 透明持久化:save()/load()/createQuery() 替代手寫 SQL。
    • 關聯映射:一對多、多對多、繼承映射、延遲加載。
    • 一級/二級緩存、事務管理、樂觀鎖。
  • 效益:作者測算編碼量減少 80%,真正實現面向對象開發。

四、Spring(2003 年):IoC/AOP 解耦一切

  • 誕生動機:解決層間強耦合(new BusinessService()、new UserDao())。
  • 核心機制:
    1. 依賴注入(DI):聲明依賴介面,容器負責實例化、裝配(XML/JavaConfig/註解)。
    2. 控制反轉(IoC):對象創建、生命周期控制權上移容器。
    3. 面向切面編程(AOP):聲明式事務、日誌、安全、緩存等橫切關注點分離。
  • 生態擴展:
    • Spring MVC:基於 DI 的 Web 框架,取代 Struts。
    • Spring + Hibernate 整合:事務管理上提至 Service 層,@Transactional 一鍵搞定。
    • Spring Boot(2014):約定優於配置、內嵌容器、Starter 生態,徹底簡化 SSH 引導。

五、經典 SSH 架構圖譜


+---------------------+
|   Presentation      |  ← Struts 1 / Spring MVC / JSP + JSTL
|   (Action/Controller|
|    Form/View)       |
+----------+----------+
           | DI
+----------v----------+
|    Business         |  ← Spring Service (POJO + @Transactional)
|    (Service/BO)     |
+----------+----------+
           | DI
+----------v----------+
|   Persistence       |  ← Hibernate DAO / Spring Data JPA
|   (DAO/Repository)  |
+----------+----------+
           | JDBC
+----------v----------+
|    Database         |
+---------------------+

六、技術選型建議(現代視角)

領域主流選擇備註
Web 框架Spring MVC / Spring WebFluxRESTful、響應式
ORMHibernate (JPA 實現) / MyBatis / Spring Data JPA複雜映射選 Hibernate,SQL 掌控選 MyBatis
DI 容器Spring IoC / CDI (Jakarta EE)Spring 生態最豐富
啟動引導Spring Boot 3.x生產級標配
微服務Spring Cloud / Dubbo / gRPC服務治理、配置中心、鏈路追蹤
新興選項Quarkus / Micronaut / HelidonGraalVM 原生映像、極快啟動、低內存

七、持續學習路徑

  1. 基礎:JVM 原理、集合、併發、I/O、JDBC、Servlet/JSP。
  2. 容器:Tomcat/Jetty/Undertow 原理、調優、集群。
  3. 框架深度:Spring 核心源碼、Hibernate 緩存/鎖、MyBatis 插件機制。
  4. 周邊:HTML/JS/CSS/TS、Vue/React、SQL 優化、Linux、Docker/K8s、CI/CD。
  5. 軟工:UML、DDD、整潔架構、測試金字塔、觀測性。

結語

SSH 不是終點,而是 Java 企業級開發「從混亂走向規範、從重構走向生態」的里程碑。今天的 Spring Boot、Cloud、GraalVM 皆站在巨人肩上。保持好奇,拥抱變化,才是 Java 開發者的核心競爭力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved