淺談Java三大框架SSH是否已經過時

在JavaEE的開發過程中,時常會用到Web應用程序的框架,SSH是曾經一度比較熱門的框架,其作用同樣是為了搭建一個架構清晰、有較好的可複用性、便於維護和管理的系統。具體來說,SSH是指Struts、Spring、Hibernate三大框架,Struts用來作為基礎性的架構,Hibernate用於數據的持久層,而Spring用來對前兩者進行管理,編寫基本的DAO接口。其實,三大框架在實踐中也經歷了不斷地進化,從SSH框架發展為SSM框架,稍早的一些項目使用Spring、Struts2、Mybatis來寫,而現在一般情況下使用Spring、SpringMVC、Mybatis來做項目。總之,框架的基本功能相同,但經歷了不斷地改進。

首先回顧一下SSH框架的功能和用途,Hibernate是一個輕量級的持久框架,能夠較為完善地處理表與表之間的映射關係,同時能夠較好的封裝JDBC。在開發數據庫的過程中寫好接口的同時並不需要用大量的SQL語句對數據庫進行交互操作。Struts作為MVC的Web層框架,對底層Servlet的大量封裝,可對業務邏輯調用的同時也擁有強大的攔截器機制。

三大框架之間的關係或流程基本是這樣的:按照JSP——Struts——Service——Hibernate的順序。Struts調用Service,從而控制了Service的生命週期,加強了各層次之間的依賴性,在一定程度上也增加了耦合性。所以我們引用了 Spring來作為框架中的容器,維護不同層次之間的關係。通過IOC反轉控制DI依賴注入完成各個層之間的注入,使得層與層之間實現完全脫耦,增加運行效率利於維護。

淺談Java三大框架SSH是否已經過時

以上回顧了SSH的基本功能和作用,在下面的講解中,會提到SSH的現狀和SSH框架為什麼會被取代。

首先struts2框架存在一定的漏洞,在應用和實施中對信息的安全有較大的隱患。在開發中也有很多方面不夠便利,特別是JSR-311標準出臺之後,隨著Restful方式的流程程度普及開來,struts2逐漸淡出人們的視線,雖然struts2也加入了一些plugin來進行支持REST,但在應用的過程中也較為繁瑣。

其次是Spring以IOC為核心,在功能上做了一寫擴展,先後推出了SpringMVC來完成邏輯層的編寫邏輯,現在SpringMVC基本已經完成了替代struts2的工作,當然,可能有一些老的項目還在用,但新開發的項目幾乎已看不到。

SpringMVC獲得了開發者的廣泛認可,在SpringMVC和Web容器的基礎上,對二者的功能進行了有機的結合,推出了SpringBoot,經過幾年的發展,現在後端基本被Spring系列所統一。可以說,Spring系列在框架的優化方面經受住了考驗,被廣泛採用。Hibernate是一個對操作數據庫進行映射的框架,它的替代品也很多,所以是否實施也需要看項目而定,其方便之處可能就在於對SQL的優化上。

在當前的開發環境中,比較提倡前後端分離,但並非完全分離,而不是之前通過模版進行分離,前後端數據交互是根據http進行的。後端設計的接口趨向於Restful的架構,因為現在前端不僅僅是web端,在移動互聯網時代,APP也是很大一部分。在後端看來,APP客戶端無法通過模版進行渲染的,只能通過http傳輸數據。Java後端技術有很多,如果想要提高,最好的方法還是多做項目多思考,對於SSH框架可用於參考,要把主要精力放在SpringMVC,掌握Spring的核心,然後深入瞭解一下Restful概念和JDBC的一些概念。堅持下去應該會有不小的收穫。


分享到:


相關文章: