Java EE - 它是什麼?
Java EE是一個建立在 Java SE 之上的平台,為開發和運行大規模、多層、可擴展、可靠且安全的網路應用程式提供 API 和運行時環境。此類應用程式稱為企業應用程序,因為它們解決大型企業面臨的問題。然而,大公司和政府機構並不是唯一可以從此類應用程式和 Java EE 提供的好處中受益的人。Java EE 平台提供的解決方案對於個人開發人員和小型組織來說非常有用,有時甚至是必要的。Java EE 開發
Java EE 是透過 1998 年成立的 Java Community Process (JCP) 開發的。它允許有興趣的各方參與制定 Java 語言平台規範的未來版本。此過程的基礎是 JSR(Java 規範請求),它是描述建議添加到 Java 平台的規格和技術的正式文件。此類請求是由社群成員——普通開發者和公司提出的。後者包括 Oracle、Red Hat、IBM、Apache 等。那些。這些人提出了他們希望包含在 Java 中的新功能和優點供考慮。然後他們進行投票,並在此基礎上決定下一版本包含哪些內容。Java EE 版本歷史如下:- J2EE 1.2(1999 年 12 月)
- J2EE 1.3(2001 年 9 月)
- J2EE 1.4(2003 年 11 月)
- Java EE 5(2006 年 5 月)
- Java EE 6(2009 年 12 月)
- Java EE 7(五月)
- Java EE 8(2017 年 8 月)
- 雅加達 EE 8(2019 年 9 月)
Java EE 應用架構
簡短的介紹。為了更容易理解,讓我們來談談 Java EE 應用程式的結構以及我們將進一步使用的一些術語。Java EE 應用程式的結構具有兩個關鍵品質:- 一是多層次。Java EE應用程式是多層的,我們稍後會更詳細地討論這一點;
- 其次,築巢。有一個 Java EE 伺服器(或應用程式伺服器),其中包含元件容器。這些容器容納(賓果!)組件。
應用程式層級
多層應用程式是根據功能原則劃分為獨立模組(等級、層)的應用程式。通常(包括在 Java EE 開發的背景下),企業應用程式分為三個層級:- 客戶;
- 平均水平;
- 資料存取等級。
-
客戶端層是一個從Java EE伺服器(中間層)請求資料的應用程式。伺服器依序處理客戶端的請求並回傳回應。客戶端應用程式可以是瀏覽器、獨立應用程式(行動裝置或桌面)或其他沒有圖形介面的伺服器應用程式。
-
中間層又分為Web層和業務邏輯層。
-
Web 層由一些提供用戶端和業務邏輯層之間互動的元件所組成。
以下 Java EE 技術用於 Web 等級:
- JavaServer Faces 技術 (JSF);
- Java 伺服器頁面 (JSP);
- 表達語言(EL);
- Servlet;
- Java EE (CDI) 的上下文和依賴注入。
-
業務邏輯層由實作應用程式所有業務邏輯的元件組成。業務邏輯是提供滿足某些特定業務領域(金融業、銀行、電子商務)需求的功能的程式碼。這一層可以認為是整個系統的核心。
此級別涉及的技術:
- 企業 JavaBeans (EJB);
- JAX-RS RESTful Web 服務;
- Java持久化API實體;
- Java 訊息服務。
-
-
資料存取等級。此等級有時稱為企業資訊系統層級(EIS)。EIS由各種資料庫伺服器、ERP(Enterprise Resource Planning)企業資源規劃系統及其他資料來源所組成。業務邏輯層存取該層以取得資料。
在此級別,您可以找到以下技術:
- Java 資料庫連線 API (JDBC);
- Java持久化API;
- Java EE 連接器架構;
- Java 事務 API (JTA)。
應用程式伺服器、容器、元件
我們來看看維基百科上對Java EE的定義。Java EE 是一組 Java 語言的規範和相關文檔,描述了用於中型和大型企業任務的伺服器平台的體系結構。為了更好地理解「一組規範」在這種情況下的含義,我們用 Java 介面進行類比。Java 介面本身缺乏功能。它只是定義了一些合同,根據這些合約來實現一些功能。但其他類別實作了該介面。此外,一個介面可以有多種實現,每種實現在某些細節上可能有所不同。規格完全一樣。赤裸裸的Java EE只是一組規格。這些規範由各種 Java EE 伺服器實作。Java EE 伺服器是實作 Java EE 平台 API 並提供標準 Java EE 服務的伺服器應用程式。Java EE 伺服器有時稱為應用程式伺服器。伺服器資料可以包含應用程式元件,每個元件都對應於多層次層次結構中自己的層級。Java EE伺服器以容器的形式為這些元件提供各種服務。容器是它們所託管的元件與支援該元件的低階平台獨立功能之間的介面。容器為其託管的元件提供特定的服務。例如,開發生命週期管理、依賴注入、並發等。容器隱藏了技術複雜性並提高了可移植性。Java EE 中有四種不同類型的容器:-
Applet 容器由大多數瀏覽器實作。開發小程式時,您可以專注於應用程式的視覺方面,而容器則提供安全的環境。
-
應用程式用戶端容器 (ACC) 包含一組 Java 類別、程式庫以及在 Java SE 應用程式中實現注入、安全管理和命名服務等功能所需的其他檔案。
-
Web 容器提供用於管理和執行 Web 元件(servlet、EJB Lite 元件、JSP 頁面、過濾器、偵聽器、JSF 頁面和 Web 服務)的核心服務。它負責實例化、初始化和調用servlet,並支援HTTP和HTTPS協定。此容器用於向客戶端瀏覽器提供網頁。
-
EJB(企業Java Bean)容器負責管理和執行包含應用程式業務邏輯層的EJB 模型元件。它會建立新的 EJB bean 實體,管理它們的生命週期,並提供交易、安全性、並發、分發、命名或非同步呼叫功能等服務。
-
Applet 是在瀏覽器中運行的圖形使用者介面 (GUI) 應用程式。他們利用豐富的 Swing API 來產生強大的使用者介面。
-
應用程式是在客戶端運行的程式。它們通常是圖形使用者介面 (GUI),用於批次處理。
-
Web 應用程式(由 servlet 及其過濾器、Web 事件偵聽器、JSP 和 JSF 頁面組成)- 在 Web 容器中執行並回應來自 Web 用戶端的 HTTP 請求。Servlet 也支援 SOAP 和 RESTful Web 服務端點。
-
企業應用程式(使用 Enterprise Java Bean、Java 訊息服務、Java 事務 API、非同步呼叫、時間服務建置)在 EJB 容器中運作。容器管理的 EJB 處理事務業務邏輯。它們可以在本地或透過 RMI(或用於 SOAP 和 RESTful Web 服務的 HTTP)遠端存取。
科技
所以,我們已經整理好了架構。整體結構應該清晰。在描述架構組件的過程中,我們接觸到了一些Java EE技術,例如EJB、JSP等。讓我們仔細看看它們。下表顯示了主要在客戶端層級使用的技術:科技 | 目的 |
---|---|
小服務程序 | 動態處理客戶端請求並產生回應(通常是 HTML 頁面)的 Java 類別。 |
Java 伺服器介面 (JSF) | 用於建立具有使用者介面的 Web 應用程式的框架。允許您在頁面上包含使用者介面元件(例如欄位和按鈕),轉換和驗證這些元件,並將這些資料儲存在伺服器端儲存中。 |
Java Server Faces Facelets 技術 | 它是 JSF 應用程式的子類型,使用 XHTML 頁面而不是 JSP 頁面 |
Java 伺服器頁面 (JSP) | 編譯成 servlet 的文字文檔。允許您將動態內容新增至靜態頁面(例如 HTML 頁面) |
Java 伺服器頁面標準標記庫 (JSTL) | 一個標籤庫,封裝了 JSP 頁面上下文中的核心功能。 |
表達語言 | JSP 和 Facelets 頁面中用於存取 Java EE 元件的一組標準標記。 |
Java EE 的上下文和依賴注入 (CDI) | 表示 Java EE 容器提供的一組服務,用於管理元件的生命週期,以及以安全的方式將元件注入客戶端物件。 |
Java Bean 元件 | 充當應用程式頁面的暫存資料儲存的物件。 |
科技 | 目的 |
---|---|
Enterprise Java Beans(企業 bean)元件 | EJB 是包含應用程式核心功能的託管 bean。 |
JAX-RS RESTful Web 服務 | 它是一個用於開發符合 REST 架構風格的 Web 服務的 API。 |
JAX-WS Web 服務端點 | 用於建立和使用 SOAP Web 服務的 API。 |
Java 持久性 API (JPA) 實體 | 用於存取資料儲存中的資料並將該資料轉換為 Java 程式語言物件(反之亦然)的 API。 |
Java EE 託管 bean | 提供應用程式業務邏輯但不需要 EJB 的事務或安全功能的託管 Bean。 |
Java訊息服務 | Java 訊息服務 (JMS) API 是一種訊息傳遞標準,可讓 Java EE 應用程式元件建立、傳送、接收和讀取訊息。這確保了元件之間的分散式、可靠和非同步通訊。 |
科技 | 目的 |
---|---|
Java 資料庫連線 API (JDBC) | 用於從資料儲存存取和檢索資料的低階 API。JDBC 的典型用途是針對特定資料庫編寫 SQL 查詢。 |
Java 持久性 API | 用於存取資料儲存中的資料並將該資料轉換為 Java 程式語言物件(反之亦然)的 API。與 JDBC 相比,API 等級更高。向開發人員隱藏了 JDBC 的所有複雜性。 |
Java EE 連接器架構 | 用於連接其他公司資源的 API,例如:
|
Java 事務 API (JTA) | 用於定義和管理事務的 API,包括分散式事務和跨多個資料儲存的事務。 |
GO TO FULL VERSION