首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

J2EE 架構全景解析:容器、服務與元件模型

     編輯:Java 相關知識

J2EE(Java 2 Platform, Enterprise Edition)以元件化、平台無關、容器管理服務三大支柱,定義了企業級應用開發標準。本文系統梳理 J2EE 架構核心:容器類型、七大核心服務、元件部署模型。

核心哲學:業務邏輯元件化,系統服務容器化

開發者將業務邏輯封裝為可重用元件(EJB、Servlet、JSP),部署至對應容器。容器以標準化服務(安全、交易、命名、遠端連線、生命週期、連線池)托管元件,**開發者專注業務,容器擔繫系統複雜度**。

七大核心容器服務

服務關鍵能力開發者受益
安全性 (Security) 角色基礎存取控制 (RBAC)、宣告式權限、方法級授權 無需編寫安全代碼,在部署描述符宣告角色/方法權限即可
交易管理 (Transaction Management) 分散式交易 (JTA)、宣告式交易屬性 (Required/RequiresNew 等)、自動提交/回滾 免寫複雜交易邊界代碼,容器依描述符自動管理
JNDI 命名查詢 統一介面存取多種命名/目錄服務 (LDAP、DNS、RMI Registry、COS Naming) 元件以邏輯名稱查找資源 (DataSource、EJB、JMS Queue),解耦物理部署
遠端連線 (Remote Connectivity) RMI-IIOP 透明遠端呼叫、Stub/Skeleton 自動生成、負載平衡/容錯支援 呼叫遠端 EJB 如同本地物件,無需處理網路通訊細節
生命週期管理 實例池化、啟動/鈍化、狀態轉換、銷毀回收 容器自動管理實例池大小、啟動鈍化時機,開發者無感知
資料庫連線池 DataSource 管理、連線借用/歸還、洩漏偵測、PreparedStatement 快取 獲取連線從「昂貴操作」變為「輕量借用」,顯著提升效能與穩定性
資源管理 (Resource Management) JCA 整合、JMS/JavaMail/JDBC 統一存取、工作管理 異構企業資源 (ERP、MQ、Legacy) 統一接入模型

四大容器類型與元件對應

容器類型管理元件執行環境核心契約
EJB 容器 Session Bean (有/無狀態)、Entity Bean (CMP/BMP)、Message-Driven Bean J2EE 伺服器進程內 javax.ejb.*、EJBHome/EJBLocalHome、部署描述符 ejb-jar.xml
Web 容器 Servlet、JSP、Filter、Listener、Tag Library J2EE 伺服器進程內 (或獨立 Servlet 容器如 Tomcat) javax.servlet.*、部署描述符 web.xml
應用程式客戶端容器 Application Client (main() 類別、Swing/JavaFX UI) 客戶機器 JVM (支援 Web Start 部署) application-client.xml、JNDI 存取伺服器端資源
Applet 容器 Applet (瀏覽器 + Java Plug-in) 客戶瀏覽器進程內 沙箱安全模型、JNLP 擴充

元件封裝與部署單元

  • EJB 模組:.jar,含 ejb-jar.xml、類別、介面
  • Web 模組:.war,含 web.xml、Servlet/JSP、靜態資源
  • 應用程式客戶端模組:.jar,含 application-client.xml
  • 企業應用程式 (EAR):.ear,聚合上述模組,含 application.xml 定義模組關係、安全角色、資源參考

典型部署拓撲

┌─────────────────────────────────────────────────────────────┐
│                      J2EE Server                            │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │  EJB容器    │  │  Web容器    │  │  Client容器(伺服端) │  │
│  │  - Session  │  │  - Servlet  │  │  - App Client       │  │
│  │  - Entity   │  │  - JSP      │  │                     │  │
│  │  - MDB      │  │  - Filter   │  │                     │  │
│  └──────┬──────┘  └──────┬──────┘  └─────────────────────┘  │
│         │              │                                    │
│         └──────┬───────┘                                    │
│                ▼                                            │
│         ┌─────────────┐                                     │
│         │  共享服務   │  (安全、交易、JNDI、連線池、資源...) │
│         └─────────────┘                                     │
└─────────────────────────────────────────────────────────────┘
                              ▲
              ┌───────────────┴───────────────┐
              ▼                               ▼
       ┌─────────────┐                 ┌─────────────┐
       │ 瀏覽器      │                 │ 應用客戶端  │
       │ (Applet容器)│                 │ (Client容器)│
       └─────────────┘                 └─────────────┘

開發流程與角色分工

角色職責產出
元件開發者編寫業務邏輯、實作介面Java 類別、介面
元件組裝者組合元件、定義依賴、撰寫部署描述符ejb-jar.xml, web.xml, application.xml
部署者對應邏輯名稱至物理資源、配置安全/交易屬性廠商專屬部署描述符、EAR 檔
系統管理員伺服器調優、監控、資源配置運行時配置、效能報表

結語

J2EE 架構的精髓在於關注點分離:業務邏輯在元件,系統服務在容器,部署配置在描述符。這種分層讓大型企業應用的開發、部署、維護、擴展各有專責,支撐起關鍵業務系統的長期演進。雖然 Java EE (J2EE 後繼者) 已引入 CDI、REST、JSON-B 等現代特性,但容器管理元件、宣告式服務、標準化部署的核心架構哲學始終未變。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved