前言
J2EE 技術更新快、規範多、整合難,且無「銀彈」。結合專案經驗 (以 JBoss 3.2.1 為例),闡述四大原則,拋磚引玉。
1. 結合商業需求選擇合理架構
- 脫離需求談技術無意義:企業資訊系統 (EIS) 核心需求是穩定、可靠、高效、易維護、整合遺留系統。
- 案例:外部數據導入場景
- 低併發/小數據量 → 直接 JDBC 即可。
- 高併發/大數據量 → 採用 Entity Bean + CMP + Cache (Commit Option D) 同步外部數據源,或 TopLink 等 O/R Mapping。可設定 Read-Only Entity Bean 提升效能。
- 案例:系統自產數據 → 採用 CMP Entity Bean + Local Interface + CMR + Session Facade。EJB 2.0+ 大幅改善效能,關鍵在於容器層面調優 (如 JBoss
standardjboss.xml 的 Bean Lock 策略),而非資料庫層,保持資料庫移植性。
2. 框架合理選用
- 自研 vs 第三方**:中小團隊、不想投入基礎框架研發 → 選擇成熟、穩定、相容 J2EE Spec 的框架。
- 常用框架**:
- Struts 1.1:Model 2 標準實現,MVC 清晰,不綁定後端持久化技術,整合 Jakarta 生態。
- Log4j:簡單、高效、靈活的日誌,JBoss 內建採用。
- realMethods:全層支援 (前端到後端) 的開源框架,源碼可學習其設計模式實現。
- BC4J (Oracle ADF 前身):商業級組件框架。
- 原則**:專案不宜引入過多框架 (升級維護難、團隊負擔重);可借鑒優秀框架的設計模式實現並改造適配。
3. 開發模式選擇
- 現實角色分工**:美工、JSP 程式員、EJB 程式員。缺乏規範定義的完整角色 (組件開發者、部署者、系統管理員...)。
- 關鍵實踐**:
- 版本控制 (VSS/CVS/SVN/Git) — 每日可構建可運行版本。
- 建模工具輔助溝通 (Together, Rose)。
- 推薦三套工具鏈:
- Together (建模) + JBuilder (IDE) + VSS/CVS + JBoss (開發期容器)
- WebSphere Studio 全家桶
- Eclipse/JCreator + Ant + XDoclet
- 工具不提升技能,但能引導正確方向 (如 JBuilder EJB 精靈產生 Struts+EJB+Session Facade+VO 結構)。
4. 重視各階段測試工作
- 單元測試**:JUnit 驗證功能正確性。
- 整合測試**:檢查記憶體洩漏、效能。OptimizeIt Suite Enterprise (Profiler, Code Coverage, Thread Debugger) 曾助定位 Swing 應用記憶體洩漏。
- 壓力/效能測試**:Rational Robot 等工具模擬併發負載。
- 成本視角**:前期省測試成本,後期部署維護成本指數級上升。質量是成本控制的關鍵。
其他關鍵因素
- 資料庫設計合理直接影響 Entity Bean 效能 (表結構差 → CMP 效能劇降)。
- 最大化挖掘團隊成員技能,建立知識分享機制。
遵循四大原則,結合具體業務場景,方能開發出具備工業強度的 J2EE 應用。