《Spring in Action》作為 Spring 框架經典著作,第一章確立了 Spring 的核心使命:簡化 Java 開發。本文系統整理其四大關鍵策略、容器體系、模組架構與生態全景。
| 策略 | 核心內容 | 關鍵價值 |
|---|---|---|
| 1. 基於 POJO 的輕量級最小侵入性 | 不強制繼承框架類/實現介面 最壞情況僅需註解 類本質仍是 POJO | 業務邏輯與框架解耦 易測試、易維護、可移植 |
| 2. 依賴注入 (DI) 與面向介面實現鬆耦合 | 依賴關係由 Spring 管理 物件無需自行創建/管理依賴 面向介面編程支援實現替換 | 消除硬編碼依賴 提升模組獨立性與可測試性 |
| 3. 基於切面 (AOP) 與慣例的聲明式編程 | 橫切關注點(日誌、事務、安全)模組化 聲明式應用到目標組件 保持 POJO 簡潔性 | 業務邏輯與系統服務分離 減少樣板代碼、提升內聚性 |
| 4. 透過切面與模板減少樣板代碼 | JDBC、JMS、REST 等模板封裝 消除重複的引導/清理代碼 | 聚焦核心業務邏輯 降低錯誤率、提升開發效率 |
InitializingBean、BeanPostProcessor 等)至關重要| 領域 | 核心模組 | 關鍵功能 |
|---|---|---|
| 核心容器 | spring-core, spring-beans, spring-context, spring-expression | DI 容器、SpEL、資源載入、事件機制 |
| AOP | spring-aop, spring-aspects | 切面編程、聲明式事務基礎 |
| 數據訪問/整合 | spring-jdbc, spring-orm, spring-tx, spring-jms, spring-oxm | JDBC 模板、ORM 整合、事務管理、訊息、對象/XML 映射 |
| Web/遠程 | spring-web, spring-webmvc, spring-websocket, spring-remoting | MVC 框架、REST、WebSocket、RMI/Hessian/HTTP Invoker |
| 儀器化 | spring-instrument, spring-instrument-tomcat | JVM 代理、類載入轉換 |
| 測試 | spring-test | Mock 物件、整合測試支援、TestContext 框架 |
Spring 不強制全盤採用,開發者可按需選擇模組。當 Spring 無法滿足需求時,提供與第三方框架整合的擴展點。其核心始終圍繞 DI 與 AOP 兩大支柱,以最小侵入性實現企業級應用的模組化、可測試性與可維護性。
第一章為整個 Spring 學習之旅奠定了概念基石:理解「為什麼需要 Spring」比「如何使用 Spring」更重要。