2004 年 Java 生態發生劇烈變化:JDK 跨越式升級至 1.5 (5.0),標註 (Annotation) 特性改變框架開發模式;JSF 遲到的 Web 層標準;Struts 穩坐開源 Web 框架霸主;AOP、SOA、MDA 等新概念重塑架構思維。
JDK 1.5 (J2SE 5.0) 核心突破
- Annotation (JSR-175):元數據編程基石,支援 Spring、Hibernate、JPA 等框架聲明式配置
- Generics (JSR-14):型別安全集合,消除強制轉型
- Autoboxing/Unboxing:基本類型與包裝類自動轉換
- Enum 類型:型別安全枚舉
- Varargs:可變參數方法
- Enhanced for-loop:
for (T t : collection)
- Static Import:靜態導入
- Concurrency Utilities (JSR-166):
java.util.concurrent 奠基
Web 層框架格局
| 框架 | 定位 | 2004 狀態 |
| Struts | Action + Form Bean + XML 配置 | 成熟期頂點,實際項目佔主導 |
| JSF (JSR-127) | 組件化、視覺化開發標準 | 剛發布,需高級 IDE 支援,生態未成熟 |
| Tapestry | 完全拋棄 JSP,組件導向 | 新星,與 WebWork 並稱 |
| WebWork | 攔截器鏈、OGNL 表達式 | 新星,後合併為 Struts 2 |
架構新浪潮
AOP (Aspect-Oriented Programming)
- 補充 OO 靜態模型,動態織入橫切關注點 (Logging、Security、Transaction)
- AspectJ 為標準,但需專用編譯器;AspectWerkz、JBoss AOP 提供無侵入替代
- 核心術語:Joinpoint、Pointcut、Advice、Aspect、Introduction
SOA (Service-Oriented Architecture)
- 工業巨頭 (Sun/IBM/BEA/Oracle) 推動,EJB 2.0 後尋求新增長點
- 核心:服務鬆耦合、標準介面 (WSDL/SOAP)、服務總線 (ESB)、流程編排 (BPEL)
- 目標:業務功能服務化、異構系統整合、靈活組合
MDA (Model-Driven Architecture)
- OMG 標準:PIM (Platform Independent Model) → PSM (Platform Specific Model) → Code
- 核心:模型轉換、標記語言 (UML/XMI)、工具鏈自動化
- 願景:業務邏輯與平台技術分離,一次建模多平台部署
兩條發展路線
- 工業標準路線:Sun/IBM/BEA/Oracle 主導 J2EE/EJB/SOA/Web Services,重標準化、重工具鏈、重廠商鎖定
- 輕量級開源路線:Spring/Hibernate/Struts/Tapestry 主導 POJO 開發、AOP、依賴注入、約定優於配置
關鍵洞見
Sun 試圖簡化 Java (JDK 1.5、JSF) 但步伐較慢;開源社群以實用主義快速迭代填補空白。技術選型應基於項目實際而非陣營站隊。
展望
- Annotation 將徹底改變框架開發方式 (後驗證:Spring 2.0、JPA、JAX-RS 等)
- AOP 從邊緣走向主流 (Spring AOP、AspectJ 整合)
- SOA 推動 ESB 與 BPEL 標準化
- 輕量級容器 (Spring) 持續蠶食 J2EE 伺服器市場