深度剖析 J2EE 架構從重量級 EJB 向輕量級 POJO 容器演進的動因與核心差異。
EJB 容器管理生命週期、事務、安全、分散式服務;Entity Bean 負責資料存取,Session Bean 暴露遠端介面。
移除遠端介面,解決分散式開銷,但 EJB 容器負擔仍存,架構複雜度未根本降低。
核心思想:容器管理 POJO,不強制實作特定介面
| 維度 | EJB 容器 | 輕量級容器 |
|---|---|---|
| 元件型別 | EJB (Session/Entity/MDB) | POJO |
| 依賴容器 API | 強綁定 | 零侵入 |
| 部署 | 複雜描述檔 | 極簡/註解/自動掃描 |
| 啟動開銷 | 大 | 極小 |
| 執行環境 | 僅 EJB 容器 | Web 容器、獨立 JVM、測試框架 |
| 服務增強 | 宣告式 (DD) | AOP 攔截 |
| 資料存取 | Entity Bean / BMP | O/R Mapping (Hibernate/iBATIS) |
| 測試性 | 難 (需容器) | 易 (JUnit 直接測試 POJO) |
Spring 框架是輕量級容器架構的集大成者,整合 IoC、AOP、模板模式,成為事實標準。