從兩層到 N 層:J2EE 架構演進
傳統 Client/Server 兩層架構將展示、業務邏輯、數據訪問耦合在客戶端,升級困難、擴展性差。J2EE 定義標準組件模型與容器服務,將應用拆分為:
- 展示層:瀏覽器/JSP/Servlet/XML+XSLT
- 業務邏輯層:Session EJB(有狀態/無狀態)
- 數據訪問層:Entity EJB / JDBC
- 集成層:JCA、JMS、Web Services 對接後台系統
容器托管事務、安全、線程池、連接池、負載均衡、故障轉移,開發者專注業務代碼。
核心技術速覽
| 技術 | 定位 | 典型場景 |
| JDBC | 統一數據庫訪問 API | 所有持久化操作,Type 4 驅動首選 |
| JNDI | 命名/目錄服務 | 查找 DataSource、EJB Home、環境變量 |
| EJB | 分布式業務組件 | Session Bean 處理業務流程,Entity Bean 映射持久實體 |
| RMI | Java 遠程方法調用 | EJB 底層通信協議,序列化傳遞對象 |
| Servlet/JSP | Web 層控制器/視圖 | 動態頁面生成、請求分發、表單處理 |
| XML | 數據交換與配置 | 部署描述符、Web Services、數據集成 |
| JMS | 異步消息通信 | 解耦生產者/消費者、異步任務、事件驅動 |
| Java IDL/CORBA | 異構系統互操作 | 集成 Legacy 非 Java 系統 |
| JTA/JTS | 分布式事務 | 跨多資源管理器(數據庫/JMS)的原子提交 |
| JavaMail/JAF | 郵件發送與 MIME 處理 | 通知、報表郵件、附件解析 |
WebLogic Server 關鍵能力
- 完整 J2EE 1.3/1.4 規范實現,高性能 Servlet 容器、EJB 容器。
- 配置式連接池(
config.xml/控制台),支持 XA 數據源參與分布式事務。
- 集群:會話複製、負載均衡、故障轉移、整群部署。
- 管理控制台:圖形化部署、監控、診斷、安全域配置。
JDBC 實戰範例
// Cloudscape 內嵌數據庫示例
Class.forName("COM.cloudscape.core.JDBCDriver");
Connection conn = DriverManager.getConnection("jdbc:cloudscape:PhoneBook");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT name, phone FROM CONTACT_TABLE ORDER BY name");
while (rs.next()) {
System.out.println(rs.getString(1) + ", " + rs.getString(2));
}
rs.close(); stmt.close(); conn.close();
企業級最佳實踐
- 數據源配置在容器,代碼通過 JNDI 查找,實現環境解耦。
- 事務邊界由容器管理(CMT)或 Bean 管理(BMT),優先 CMT 配合
Required 傳播。
- Entity Bean 採用容器管理持久化(CMP 2.0)減少 JDBC 代碼,複雜查詢用
ejbSelect / finder。
- 異步處理採用 MDB(Message-Driven Bean)消費 JMS 隊列/主題。
- 上一篇文章: Java 虛擬機核心原理深度筆記:類加載、內存模型、線程與執行引擎
- 下一篇文章: Eclipse 開發環境實戰:從 Hello World 到 UML 建模與插件生態
Copyright ©
程式碼之家 All Rights Reserved