前言
本文為 2007 年左右 Java 開源生態全景總結,記錄了當時主流框架、工具、中間件、應用系統。雖部分專案已停更或被新技術取代,但作為技術演進歷史檔案極具參考價值,助理解現代生態根源。
一、核心開發框架
| 框架 | 定位 | 核心特性 | 關鍵生態工具 |
| Spring Framework | JEE 全棧輕量級容器 | IOC/AOP、統一數據訪問/事務抽象、MVC Web 框架、聲明式事務、AOP 切面、模板模式消除樣板代碼 | Spring IDE (Eclipse) |
| WebWork (→ Struts 2) | 拉取式 MVC、組件化復用 | XWork 命令模式/攔截器/驗證/類型轉換/OGNL/IOC;WebWork 2 基於 XWork 處理 HTTP;2.2+ 整合 DWR/Dojo AJAX | EclipseWork |
| Struts 1.x | 經典推式 MVC、標準化標籤庫 | Servlet/JSP/自定義標籤/資源文件整合、前端控制器、ActionForm 綁定驗證、Tiles 頁面佈局、國際化 | Struts IDE |
| Tapestry | 組件化、HTML 模板分離 | 組件對象模型 (jwcid)、Java/HTML 完全分離、本地化、詳細錯誤報告、JavaBean+XML 配置 | Spindle (Eclipse) |
| JSF | Java EE 標準組件框架 | 服務端組件樹、狀態管理、事件驅動、驗證/轉換/導航/國際化、雙實現 (RI/MyFaces)、豐富第三方組件庫 | NetBeans, JDeveloper, Creator, Eclipse WTP |
| Stripes | 零配置、約定優於配置 | 無 XML、ActionBean 單類處理、類型轉換/驗證/綁定強大、社區熱心但規模小 | - |
| Wicket | 純 Java 組件、無 XML | 頁面與組件緊密綁定、Java 邏輯渲染 HTML、組件復用、需深厚 OO 功底 | - |
| EasyJWeb | 國產輕量 MVC、Velocity 模板 | 零配置、頁面代碼完全分離、組件化字段級事件、EasyJWebTools 代碼生成 (支援 Hibernate/Spring 模板) | EasyJWebTools |
二、持久層 / ORM
| 框架 | 特點 | 定位差異 |
| Hibernate | 全自動 ORM、HQL、緩存、代理、可替換 CMP | 對象中心、高移植性、生態最豐富 |
| iBATIS (→ MyBatis) | 半自動、手寫 SQL、映射文件、靈活控制 | SQL 中心、適合複雜查詢/存儲過程/性能極致調優 |
| JDO | 標準化 ORM API、多數據存儲支援 | 規範先行、實現較少、後被 JPA 取代 |
| TopLink / CocoBase | 商業/開源 ORM 早期代表 | 後併入 EclipseLink / 淡出主流 |
工具:Hibernate Synchronizer, Middlegen IDE (Eclipse 代碼生成/逆向工程)
三、模板引擎
- Velocity: VTL 模板語言、MVC 分離、Turbine 整合、代碼生成、報表、VeloEclipse 插件。
- FreeMarker: 強大直觀模板語言、編譯快、輸出近靜態 HTML 速度、Servlet 整合、FreeMarker IDE/Eclipse Plugin。
四、任務調度 / 緩存 / 搜索 / 文檔
| 項目 | 領域 | 核心能力 |
| Quartz | 調度 | Job/Trigger/Calendar、集群、J2EE/J2SE 嵌入、標準組件/EJB Job |
| Lucene | 全文搜索 | 索引/搜索/分析/過濾 API、高性能、可定制 Analyzer/QueryParser |
| iText | PDF 生成 | 文本/表格/圖形、只讀文檔、Servlet 輸出控制 |
| EHCache / OSCache / JCS | 緩存 (未列但隱含) | Hibernate 二級緩存主流 Provider |
五、應用服務器 / 門戶 / CMS / 企業級應用
| 專案 | 類型 | 關鍵技術棧 |
| JOnAS | 開源 J2EE AS (ObjectWeb) | Tomcat/Jetty Web 容器、JCA/JDBC/JTA/JMS/JMX/JNDI/JAAS/JavaMail |
| JFox 3.0 | 輕量級 JavaEE AS | OSGi 微內核、EJB3/JPA、JOTM 事務、XAPool 連接池、內建 MVC、模塊化部署、Manager 管理模塊 |
| Liferay | 企業門戶 | Struts 前台、XML Portlet 配置、WebService、Lucene 全文檢索、Hibernate、多語言、主流 AS/DB 支援 |
| Jetspeed | 企業信息門戶 (EIP) | Portlet API、Velocity/JSP 佈局、遠程 XML 同步、WML、PSML 持久化、安全/角色/皮膚/個性化、Turbine 整合 |
| OpenCms | CMS 內容管理 | J2EE、Tomcat 捆綁、多 RDBMS、新模板引擎、JSP 支援 |
| Compiere ERP & CRM | ERP/CRM | 多組織/幣種/會計/成本/語言/稅制、快速部署、全模塊覆蓋 |
| Roller Weblogger | Blog 系統 | 評論/WYSIWYG/TrackBack/模板/RSS/Blogroll/XML-RPC |
| XWiki | Wiki 引擎 | Hibernate 存儲、附件/版本控制/全文搜索/權限/多語言/XML-RPC/WYSIWYG/PDF 導出/Groovy 腳本 |
六、開發工具 / IDE / 測試 / 動態語言 / 基礎設施
| 專案 | 類型 | 備註 |
| Eclipse | IDE 平台 | IBM 捐贈、4000 萬美元投入、成熟可擴展架構、插件生態核心 |
| BlueJ | 教學 IDE | Monash 大學、入門級可視化對象交互 |
| JUnit | 單元測試框架 | Gamma/Beck、白盒測試、TestCase 繼承、自動化回歸 |
| Groovy | JVM 動態語言 | Python/Ruby/Smalltalk 特性、編譯為 Bytecode、WebWork 2 整合 |
| HSQLDB | 純 Java 關係數據庫 | ANSI-92 SQL、JDBC、~160KB、嵌入式/服務器模式 |
| DWR | AJAX 遠程調用 | JS 直接調用 Java 方法、動態生成 JS 代理、Spring 整合、併發/瀏覽器支援優化 |
| ZK | AJAX 組件框架 | XUL 標記/事件驅動/EL/腳本語言 (JS/Ruby/Groovy)/Annotation/數據綁定/Google Maps/FCKeditor/DOJO 整合 |
| JXTA | P2P 平台 | Sun、XML/Java、跨平台/時間/設備 P2P、三層架構 (核心/業務/應用) |
| EJBCA | PKI/CA 系統 | J2EE、高性能組件化 CA、靈活平台無關 |
七、項目管理 / 規劃工具
- XPlanner: Web XP 團隊規劃追蹤、Iteration/User Story/虛擬卡片/工時/效率報表/SOAP 介面。
結語:時光機視角
回顧 2007 年生態,Spring 已成王者、Hibernate 統治 ORM、Struts 1 尚存霸主地位但 Struts 2/WebWork 交替上位、JSF 作為標準艱難推進、Eclipse 確立 IDE 霸權、OSGi (JFox) 開始探索模塊化微內核、AJAX (DWR/ZK) 爆發前夜。今日 Spring Boot/Cloud、Quarkus、Micronaut、Jakarta EE、GraalVM、Kubernetes 原生 Java 已重塑版圖,但IOC/AOP、ORM、MVC、組件化、插件生態、標準化規範等核心思想一脈相承。讀史明智,技術選型勿忘初心。