學習筆記:Spring、Struts和Hibernate三大框架的特色
前言 :
Spring、Struts、Hibernate基本上算是從事JavaWeb後臺開發人員必學的三個基本框架,是web應用中的三劍客,使用這三個框架構成了我們常說的MVC程式設計模式,能夠滿足一般企業開發的業務需求。
Java基礎是關鍵
要開始學習Spring、Struts和Hibernate這三個框架,需要做充足的Java基礎知識學習,知道這些知識才能知道為什麼需要使用這三個框架。下面列出學習三大框架之前的基礎知識:
(1)Java面向物件開發基礎。這部分內容包括類、物件、方法、屬性四大概念,以及封裝、繼承、多型三大特徵的使用。要清晰面向物件的開發過程:類的定義、物件的建立、方法的呼叫。
(2)Java操作資料庫。這部分內容包括Java如何與資料庫進行溝通,如何通過java完成資料庫的增刪改查等基本操作。這部分內容還包括如何使用預處理模式提高效率,如何使用CallableStatement完成儲存過程呼叫,以及如何使用資料庫連線池來優化資料庫操作。當然還要清楚使用DAO模式來規範化程式碼結構,而這也為使用Hibernate打下了一定的基礎。
(3)Java web開發基礎。這部分內容包括Servlet、JavaBean、JSP的開發、除錯、部署,清楚web開發的範圍定義以及web容器的配置管理。要清楚web MVC結構,能使用Model2結構進行web程式開發,而這為使用Struts和Spring打下了基礎。
Spring、Struts和Hibernate 三大框架的概述與特點
Spring是什麼?

Spring是一個開放原始碼的設計層面框架 ,他解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的程式設計思想貫穿整個系統應用。Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson建立。簡單來說,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級 開源框架。
特點
(1)J2EE應該更加容易使用。
(2)面向物件的設計比任何實現技術(比如J2EE)都重要。
(3)面向介面程式設計,而不是針對類程式設計。Spring將使用介面的複雜度降低到零。(面向介面程式設計有哪些複雜度?)
(4)程式碼應該易於測試。Spring框架會幫助你,使程式碼的測試更加簡單。
(5)JavaBean提供了應用程式配置的最好方法。
(6)在Java中,已檢查異常(Checked exception)被過度使用。框架不應該迫使你捕獲不能恢復的異常。
Struts是什麼?

struts是開源框架 。使用Struts的目的是為了幫助我們減少在運用MVC設計模型來開發Web應用的時間。如果我們想混合使用Servlets和 JSP 的優點來建立可擴充套件的應用,struts是一個不錯的選擇。
特點 :
(1)Struts跟Tomcat、Turbine等諸多Apache專案一樣,是開源軟體,使開發者能更深入的瞭解其內部實現機制。
(2)Struts: Taglib和頁面導航 。
(3)Taglib是Struts的標記庫,靈活運用,能大大提高開發效率。
(4)頁面導航:系統的脈絡更加清晰。通過一個 配置檔案 ,即可把握整個系統各部分之間的聯絡,這對於後期的維護有著莫大的好處。尤其是當另一批開發者接手這個專案時,這種優勢體現得更加明顯。
(5)MVC即Model-View-Controller的縮寫,是一種常用的設計模式。MVC 減弱了業務 邏輯介面 和資料介面之間的耦合,以及讓檢視層更富於變化。
(6)Struts 是MVC的一種實現,它將 Servlet和 JSP 標記(屬於 J2EE 規範)用作實現的一部分。Struts繼承了MVC的各項特性,並根據J2EE的特點,做了相應的變化與擴充套件。
Hibernate是什麼?

Hibernate是一個開放原始碼的物件關係對映框架 ,它對JDBC進行了非常輕量級的物件封裝,它將POJO與資料庫表建立對映關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的JaveEE架構中取代CMP,完成 資料持久化 的重任。
(1)將對資料庫的操作轉換為對Java物件的操作,從而簡化開發。通過修改一個"持久化"物件的屬性從而修改資料庫表中對應的記錄資料。
(2)提供執行緒和程序兩個級別的快取提升應用程式效能。
(3)有豐富的對映方式將Java物件之間的關係轉換為資料庫表之間的關係。
(4)遮蔽不同資料庫實現之間的差異。在Hibernate中只需要通過"方言"的形式指定當前使用的資料庫,就可以根據底層資料庫的實際情況生成適合的SQL語句。
(5)非侵入式:Hibernate不要求持久化類實現任何介面或繼承任何類,POJO即可。
總結
學習Spring、Struts和Hibernate是很多初學者都會經歷的階段,要掌握這三個框架首先要清楚這三個框架都分別解決了哪些問題,同時要知道這三大常見框架的使用場景和框架的內部實現細節。
1.Spring 屬於主流開發技術,適合新人快速融入,同時它自身的設計概念也非常優秀。
2.Struts 不推薦學習,除非專案需要可到時候查詢資料,新人不推薦學習它。
3.Hibernate 屬於 ORM,推薦新手學習,但不推薦著重學習。
最好先學hibernate,因為這樣你可以通過spring和struts的學習不斷整合框架的同時,更好的掌握操作資料庫,大多數程式設計師對於資料庫的的知識都比較欠缺,Java基礎是關鍵啊
關注我:需要資料請進群獲取:909723834,獲取Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分散式、高併發等架構技術視訊教程資料,架構思維導圖,和BATJ面試題及答案。
合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
附:思維導圖(學習路線)
