共計 2994 個字符,預計需要花費 8 分鐘才能閱讀完成。
本篇內容主要講解“Java Web 框架技術發展過程是怎樣的”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Java Web 框架技術發展過程是怎樣的”吧!
一、Java Web 框架技術的概念
所謂的 Java 框架,簡單理解是一個可復用的設計構件,它規定了應用的體系結構,闡明了整個設計、協作構件之間的依賴關系、責任分配和控制流程,表現為一組抽象類以及其實例之間協作的方法,它為構件復用提供了上下文 (Context) 關系。Struts、Hibernate 和 Spring 是 Java 開發中的常用框架,他們分別針對不同的應用場景給出最合適的解決方案。
二、Java Web 框架技術發展過程
傳統的 Java Web 應用程序是采用 JSP+Servlet+Javabean 來實現的,這種模式實現了最基本的 MVC 分層,使的程序結構分為幾層,有負責前臺展示的 JSP、負責流程邏輯控制的 Servlet 以及負責數據封裝的 Javabean。但是這種結構仍然存在問題:如 JSP 頁面中需要使用符號嵌入很多的 Java 代碼,造成頁面結構混亂,Servlet 和 Javabean 負責了大量的跳轉和運算工作,耦合緊密,程序復用度低等等。
為了解決這些問題,出現了 Struts 框架,它是一個完美的 MVC 實現,它有一個中央控制類(一個 Servlet),針對不同的業務,需要一個 Action 類負責頁面跳轉和后臺邏輯運算,一個或幾個 JSP 頁面負責數據的輸入和輸出顯示,還有一個 Form 類負責傳遞 Action 和 JSP 中間的數據。JSP 中可以使用 Struts 框架提供的一組標簽,就像使用 HTML 標簽一樣簡單,但是可以完成非常復雜的邏輯。從此 JSP 頁面中不需要出現一行包圍的 Java 代碼了。
可是所有的運算邏輯都放在 Struts 的 Action 里將使得 Action 類復用度低和邏輯混亂,所以通常人們會把整個 Web 應用程序分為三層,Struts 負責顯示層,它調用業務層完成運算邏輯,業務層再調用持久層完成數據庫的讀寫。
使用 JDBC 連接來讀寫數據庫,我們最常見的就是打開數據庫連接、使用復雜的 SQL 語句進行讀寫、關閉連接,獲得的數據又需要轉換或封裝后往外傳,這是一個非常煩瑣的過程。
這時出現了 Hibernate 框架,它需要你創建一系列的持久化類,每個類的屬性都可以簡單的看做和一張數據庫表的屬性一一對應,當然也可以實現關系數據庫的各種表件關聯的對應。當我們需要相關操作是,不用再關注數據庫表。我們不用再去一行行的查詢數據庫,只需要持久化類就可以完成增刪改查的功能。使我們的軟件開發真正面向對象,而不是面向混亂的代碼。我的感受是,使用 Hibernate 比 JDBC 方式減少了 80% 的編程量。
現在我們有三個層了,可是每層之間的調用是怎樣的呢? 比如顯示層的 Struts 需要調用一個業務類,就需要 new 一個業務類出來,然后使用; 業務層需要調用持久層的類,也需要 new 一個持久層類出來用。通過這種 new 的方式互相調用就是軟件開發中最糟糕設計的體現。簡單的說,就是調用者依賴被調用者,它們之間形成了強耦合,如果我想在其他地方復用某個類,則這個類依賴的其他類也需要包含。程序就變得很混亂,每個類互相依賴互相調用,復用度極低。如果一個類做了修改,則依賴它的很多類都會受到牽連。為此,出現 Spring 框架。Spring 的作用就是完全解耦類之間的依賴關系,一個類如果要依賴什么,那就是一個接口。至于如何實現這個接口,這都不重要了。只要拿到一個實現了這個接口的類,就可以輕松的通過 xml 配置文件把實現類注射到調用接口的那個類里。所有類之間的這種依賴關系就完全通過配置文件的方式替代了。所以 Spring 框架最核心的就是所謂的依賴注射和控制反轉。
現在的結構是,Struts 負責顯示層,Hibernate 負責持久層,Spring 負責中間的業務層,這個結構是目前國內最流行的 Java Web 應用程序架構了。另外,由于 Spring 使用的依賴注射以及 AOP(面向方面編程),所以它的這種內部模式非常優秀,以至于 Spring 自己也實現了一個使用依賴注射的 MVC 框架,叫做 Spring MVC,同時為了很好的處理事物,Spring 集成了 Hibernate,使事物管理從 Hibernate 的持久層提升到了業務層,使用更加方便和強大。
三、當前流行的框架技術及發展趨勢
除了上述中的 Struts、Hibernate 和 Spring 外,比較流行的就是 Spring MVC 框架。Spring MVC 屬于 SpringFrameWork 的后續產品,已經融合在 Spring Web Flow 里面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用 Spring 進行 WEB 開發時,可以選擇使用 Spring 的 SpringMVC 框架或集成其他 MVC 開發框架,如 Struts1,Struts2 等。它是一個典型的教科書式的 mvc 構架,而不像 struts 等都是變種或者不是完全基于 mvc 系統的框架,對于初學者或者想了解 mvc 的人來說 spring 是最好的,它的實現是教科書式的,它和 tapestry 一樣是一個純正的 servlet 系統,這也是它和 tapestry 相比 struts 所具有的優勢。而且框架本身有代碼,看起來容易理解。
正在興起的框架有 Jersey、springboot、play、Vue.js、jfinal 等。Jersey RESTful 框架是開源的 RESTful 框架, 實現了 JAX-RS (JSR 311 JSR 339) 規范。它擴展了 JAX-RS 參考實現,提供了更多的特性和工具,可以進一步地簡化 RESTful service 和 client 開發。盡管相對年輕,它已經是一個產品級的 RESTful service 和 client 框架。與 Struts 類似,它同樣可以和 hibernate,spring 框架整合。由于 Struts2+hibernate+spring 整合在市場的占有率太高,所以很少一部分人去關注 Jersey。所以網上有關于 Jersey 的介紹很少。但是它確實是一個非常不錯的框架。對于請求式服務,對于 GET,DELETE 請求,你甚至只需要給出一個 URI 即可完成操作。
springboot 框架,被稱作一棧式解決方案。比較輕量,也是當前微服務下的趨勢;springboot 本身就是構建與 spring 之上,各種思想和特性無需多說,去掉了 spring 繁瑣的配置,簡化了原有 spring 開發的流程,提供了各種實用的特性如 metric,actuctor 等等;最重要的是 springboot 附帶了整個 springcloud 生態。兩個框架對你解決大,中,小項目都沒任何問題。
play 更加偏向于 scala,本身輕量性能高,隨著逐步的優化易用性以及擴展性都變得越來越好。
JFinal 是基于 Java 語言的極速 web 開發框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有 Java 語言所有優勢的同時再擁有 ruby、python 等動態語言的開發效率。
到此,相信大家對“Java Web 框架技術發展過程是怎樣的”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!