1. 程式人生 > >Java EE入門教程系列(一)——第一章Java EE的概述(1)

Java EE入門教程系列(一)——第一章Java EE的概述(1)

題外話:這個系列是為了記錄學習Java EE的軌跡,也算是讀書筆記,是我先看完了一遍教程對相關概念有了一個大體印象以後準備再重頭細看一遍時同步寫的部落格。感想就是其實以前課堂上老師教的課都是很有作用的,如果你能很好地掌握設計模式、計算機網路的相關知識,那麼對你理解Java EE會有很大的幫助。可能是大三才有了以後要找工作的實感,似乎慢慢知道自己該學些什麼,不像大一大二想努力的時候還是很迷茫找不到方向。其實現在也常常否定自己,覺得自己醒悟的太晚,大三了程式碼能力還是很差。但是也會覺得其實生活也待我不薄,也會有很多小確信,比如看到部落格瀏覽量每天都在增加,看到陌生的人因為我的部落格關注我······上面都是題外話啦,我們開始吧!

敲黑板:本章主要介紹Java EE的基礎概念,以及與之相關的一些元件和技術。通過對Java EE體系的巨集觀性介紹,闡述企業及軟體開發的基本體系結構。通過對容器——元件的介紹,闡述Java EE的程式設計思想及優勢。

本章的重點為Java EE的程式設計思想、體系結構,以及它的容器與元件。

1.1Java EE的由來

1.1.1軟體開發的發展歷程(為了完整性會很簡單地介紹一下,想要深入瞭解的可以自行搜尋哦)

軟體開發是個比較年輕的行業,它的發展歷程和其他傳統工業、傳統技術很相似。它的發展受到了市場需求和硬體的推動和制約,同時也反過來推動了市場需求和硬體的發展。目前比較主流的軟體技術發展歷程大致可分為3個階段

:第一階段是軟體技術發展的早期(1940~1960),個人作品階段;第二個階段是結構化程式設計及高階語言大發展時期(1960~1980),作坊生產階段;第三個階段是從80年代到現在,是軟體工程技術及面嚮物件語言的大發展時期,軟體開發的工業革命。(從名字就很好理解這些階段的主要特點了)

1.1.2企業級軟體專案開發的體系結構

企業級應用程式的概念:這裡的企業級是指那些應用規模巨大,集成了很多應用功能,需要處理巨量資料的軟體開發專案。

企業級軟體開發的規模一般具有以下特點:1)基於網路的應用(而不是基於機器);2)巨量的資料整合;3)高度的安全性;4)具備可擴充套件性。

目前軟體開發的兩大方向為:

C/S體系結構:

由客戶端(Client)和伺服器端(Server)兩部分構成。使用者想要使用這個系統,首先必須先安裝它的客戶端,比如我們手機裡的QQ等軟體,這也是它的一個缺點。客戶端負責人機介面的互動及業務控制方面的操作,伺服器端主要負責資料的互動和儲存。優點就是系統安全性高,通訊效率高,能處理大量資料,互動性強。

B/S體系結構:

由瀏覽器(Browser)和伺服器(Server)組成。要注意的是瀏覽器只是起到了“瀏覽”的作用,它僅僅把程式需要傳遞的頁面在瀏覽器中呈現出來,本身不對資料做任何處理。在這種體系結構中,伺服器內部進行了一個分層,應用伺服器負責實現業務處理和控制,可以近似認為代替了C/S中客戶端的部分功能,資料庫伺服器負責對資料庫的管理和對資料的具體互動。優點就是你只需要一個瀏覽器不需要安裝客戶端,而且伺服器的分層有效地使程式和資料分離,提高了獨立性。(這個系列介紹的Java EE是針對B/S體系結構提出的解決方案)

1.2認識Java EE

1.2.1 Java EE簡介(有很多抽象的概念我都在括號裡給了我覺得比較好理解的解釋,除此之外還有很多不同的解釋,不理解的話可以查閱資料找到自己最喜歡的解釋^^)

Java EE的全稱是Java Platform Enterprise Edition。它是基於Java語言的一種軟體設計體系結構(軟體體系結構是一個抽象的系統規範,主要包括用其行為來描述的功能構件和構件之間的相互連線、介面和關係),所以它不是一種語言,也不是整合開發環境(是用於提供程式開發環境的應用程式,一般包括程式碼編輯器、編譯器、除錯器和圖形使用者介面等工具),而是一種標準中介軟體體系結構(中介軟體一種獨立的系統軟體或服務程式,分散式應用軟體藉助這種軟體在不同的技術之間共享資源。中介軟體位於客戶機/ 伺服器的作業系統之上,管理計算機資源和網路通訊。是連線兩個獨立應用程式或獨立系統的軟體。相連線的系統,即使它們具有不同的介面,但通過中介軟體相互之間仍能交換資訊。執行中介軟體的一個關鍵途徑是資訊傳遞。通過中介軟體,應用程式可以工作於多平臺或OS環境)。Java EE作用在於標準化企業級多層應用系統的部署,簡化開發過程。好比蓋大樓,採用的是磚混結構還時框架結構。

軟體開發的過程是一個不斷標準化、專業化、抽象化的過程。從面向物件到Java EE是進一步抽象了開發過程中的應用物件,並且對開發過程中各個元件的介面進行了統一的、標準化的規範。

一個典型的Java EE結構的軟體應用系統,從邏輯上劃分,包括三層:表示層、業務層及資料持久層

表示層:負責對客戶的響應,並進行一定的業務控制(轉發和指派)

業務層:主要負責對業務資料的具體控制和響應,並負責對具體資料發起編輯請求

資料持久層:主要負責對資料庫系統的控制和管理,業務層的資料請求都需要通過持久層的處理來完成與具體資料庫資料的互動。

Java EE就是通過上面三層的設計,給出了一個標準的軟體架構和設計方案。Java EE設計的內容非常多而且是一直在進行擴充套件,因為除了它自己設計出來的具體元件之外,很多公司也在不斷地遵循它的標準設計適合自己產品的元件,Java EE有巨大的影響力。

1.2.2Java EE的程式設計思想(容器—元件)

容器—元件的程式設計思想,從邏輯上說就是把完成具體功能的工具以組建的形式“裝入”一個容器之中,具體的實現方式是要求元件對所有資料的接收和傳送必須通過容器才能完成。也就是說伺服器發出的請求是由容器分發到響應元件進行處理的,處理的結果又交給容器,由容器決定最後的輸出方式。

這樣做可以用統一的標準處理資料,並且讓容器與系統其他部分保持很高的獨立性。這個思想是面向物件中類的封裝性的一種延續,只不過比起類封裝一個特定的資料模式,容器封裝的是更大的一組特定的功能。

Java EE的容器會給元件提供一些底層的基礎功能來完成元件與外界的資料互交。Java EE提供了一個統一的標準規範實現了元件與容器之間既保持相對獨立,又有比較強大的資料互動能力。

最常見的Java EE容器是Web容器和EJB容器。它們所包含的元件會在容器的Java虛擬機器中進行初始化。元件根據容器提供的標準服務來與外界進行互交。這些服務主要包括命名服務、資料庫連線服務、持久化、訊息服務、事務支援和安全性服務等。大部分底層的基礎功能都由容器提供,可以讓開發者專注於對業務邏輯的設計。

從實現原理看,容器與元件之間的通訊除了Java程式本身的演算法完成具體操作外,更重要的是通過一個部署描述檔案來解決容器如何向元件提供服務,提供哪種服務的問題,這個檔案是一個用XML語言寫成的檔案,可以想一想生活中各種家電說明書的作用。

這個檔案會隨著系統的複雜而不斷變得複雜,所以設計人員也在不斷優化,比如Java EE5推出了支援在元件中實現直接對註解的引用,Java EE5還對配置做了模組化的設定。這裡就不細說了,感興趣的小夥伴自行查閱資料吧。

感覺也沒有很多字但是寫了挺久的,因為好多地方要停下來仔細想想,這一塊我覺得還是有點抽象,建議大家多回味一下~