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

揚揚 J2EE 學習筆記四:J2EE 平台服務核心解析——命名、部署、事務、安全與連接器

     編輯:Java 相關知識

J2EE 平台服務:容器為組件提供的運行時契約

J2EE 平台服務是容器為部署組件提供的標準化運行時支持,核心目標:讓開發者專注業務邏輯,將基礎設施關注點(事務、安全、資源訪問、生命周期)下沉到容器。本筆記系統梳理命名服務、部署定制、事務管理、安全授權、服務技術棧與通信協議六大板塊。

1. 命名服務:JNDI 統一資源定位

  • 客戶端通過 JNDI 查找 EJB、DataSource、JMS ConnectionFactory 等資源
  • 組件獲取 InitialContext,在 java:comp/env 環境命名上下文中查找
  • 支援邏輯名稱映射:開發期邏輯名 → 部署期物理 JNDI 名,實現配置解耦
  • 標準查找模式:ctx.lookup("java:comp/env/jdbc/MyDS")

2. 部署與定制:聲明式配置替代硬編碼

  • 部署描述符(XML)定義組件裝配與環境依賴:web.xml(Web 容器)、ejb-jar.xml(EJB 容器)
  • 無需修改源碼即可定制:事務屬性、安全角色、資源引用、環境參數
  • 部署單元:EAR(企業應用)、WAR(Web 模塊)、JAR(EJB/工具類)

3. 事務服務:ACID 語義的容器化實現

  • JTA(Java Transaction API)統一事務邊界:UserTransaction 編程式、@TransactionAttribute 聲明式(EJB 3.0+)
  • 容器管理事務(CMT)為默認:方法維度自動 begin/commit/rollback
  • 分佈式事務:XA 協議、兩階段提交、XADataSource、XAResource
  • 核心價值:將「不可分割的最小工作單元」與「錯誤恢復/併發控制」剝離業務代碼

4. 安全服務:聲明式授權模型

  • 兩階段訪問控制:認證 + 授權
  • 角色基礎訪問控制(RBAC):@RolesAllowed、method-permission、security-role-ref
  • 程序化安全:EJBContext.isCallerInRole()、HttpServletRequest.isUserInRole()
  • 傳輸層安全:SSL/HTTPS、客戶端證書認證

5. 服務技術棧:標準 API 統一異構資源

API作用關鍵特性
JDBC關係數據庫訪問DataSource 池化、驅動類型 1-4、事務隔離級別
JTA事務管理UserTransaction、TransactionManager、XA 支持
JNDI命名/目錄服務統一查找 LDAP/NDS/DNS/NIS、存儲任意 Java 對象
JCA連接器架構資源適配器、連接池、事務流入、消息流入、安全流入
JMS消息服務P2P/發布訂閱、持久訂閱、事務性會話、MDB
JavaMail郵件服務SMTP/POP3/IMAP、MIME、認證

6. 通信協議:多協議互操作

  • Internet 協議:TCP/IP、HTTP/HTTPS、SSL/TLS
  • 遠程調用:RMI/JRMP、RMI-IIOP(CORBA 互操作)、Web Services (SOAP/HTTP)
  • 對象管理:OMG CORBA、GIOP/IIOP、POA
  • 數據格式:HTML 3.2、圖像、JAR、Class、XML(含 SOAP、WSDL、XSD)

學習路線圖建議

  1. 搭建 WebSphere 開發環境,跑通「Hello World」EJB + Servlet
  2. 深入 JNDI:邏輯引用 → 物理綁定 → 資源反射注入
  3. 掌握 CMT 聲明式事務:Required/RequiresNew/Mandatory/NotSupported/Never/Supports 六大屬性
  4. 實戰 RBAC:聲明式角色映射 + 程序化 isCallerInRole
  5. JCA 開發簡單資源適配器(如文件/ FTP 適配器)理解 SPI 契約
  6. 集群部署:會話複製、負載均衡、故障轉移、單點登入

目標:熟練使用 WebSphere 進行 J2EE 企業級開發,掌握容器服務原理與調優竅門。

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