Sun 將 J2EE 1.5 更名為 Java EE 5,絕非單純品牌重塑。這標誌著 Java 企業級平台從「重型、複雜、大型專案導向」向「輕量、簡化、中小型專案友善」的戰略轉向。J2EE 之名易讓初學者誤以為是獨立於 Java 的技術體系,而 Java EE 明確宣示:這是 Java 平台在企業級伺服器端的延伸與標準化。
Java 誕生十年來,大量業務核心組件歷經版本更迭依然可用,避免了語言革命帶來的資產報廢。但 Web 容器與 EJB 容器的引入,也帶來新焦慮:Sun 是否會持續推出翻新框架,導致業務架構無所適從?「是否需要 EJB」的長期爭論,折射出業界對技術鎖定的深層恐懼。
作者早在 2004 年中國軟體技術大會提出:需要一個跨 J2SE/Web/EJB 的微容器,保護業務核心組件(中介軟體),延續其生命力,而非綁定特定 J2SE/J2EE 版本。這一願景在 Java EE 5 中得以實現。

架構圖灰色加深處為新增功能,核心亮點:
Java 5.0 引入 Annotations(源自 C++、xDoclet 實踐),解決「寫 Code 又寫 XML、往返照顧」痛點。本質上是解決資源注入問題(XML 只是資源之一)。傳統 J2EE 依賴 JNDI 查找容器管理資源,Annotations 實現聲明式注入:
// 傳統 XML 配置 (jdonframework.xml)
<pojoService class="com.jdon.framework.test.dao.JdbcDAO" name="jdbcDAO">
<constructor value="java:/TestDS"/>
</pojoService>
// Annotations 等效寫法 (JdbcDAO.java)
@Resource(name="java:/TestDS")
private DataSource dataSource;
Annotations 靈活性帶來風險:初學者易將本屬於 XML 的硬式編碼寫入註解,破壞程式碼整潔度與彈性。最佳實踐:
EJB 3.0 核心變化在於編程模型簡化,而非運行機制重構:
學習建議:從 Eclipse + XDoclet 開發 EJB 2.0 入手,掌握核心原理後再學 EJB 3.0 簡化語法。JBoss IDE 內建支援,無需額外外掛。EJB 3.0 ≈ EJB 2.0 + XDoclet 風格簡化。
Java EE 5 達成了作者當年預想的架構目標:
業務核心組件 (POJO)
│
├── 部署於 Web 容器 (Servlet/JSF/JPA) → 輕量級應用
│
└── 部署於 EJB 容器 (Session Bean/JPA/事務) → 複雜分散式應用
同一套業務邏輯,通過標準化持久化 API (JPA) 與資源注入,實現容器無關部署。這正是「保護業務核心資產、延續生命力」的最佳實踐。
Java EE 5 不只是版本迭代,更是 Java 企業級平台對業界呼聲的回應:標準化不等於複雜化,簡化不代表功能閹割。透過 JPA 統一持久層、Annotations 簡化配置、容器功能對等實現部署彈性,Java EE 5 為中小型企業應用開啟了「輕量級標準化」新紀元。對開發團隊而言,掌握核心原理(事務、安全、並發、持久化)遠比追逐框架語法更具長期價值。