Spring 不只是一個框架,更是一種 分層架構哲學。其核心價值在於:模組化設計、鬆耦合、易測試、非侵入式。你可以按需選用模組(僅用 JDBC 抽象、或僅用事務管理、或完整堆疊),各模組內部相容,學習曲線平滑,投入產出比極高。
傳統項目大量使用 Singleton 模式,導致:
Spring 通過 IoC 容器管理 Bean 生命週期,徹底替代 Singleton,還給物件應有的 OO 本質。
傳統項目充斥各式屬性文件、系統屬性、JNDI 查找,開發者須閱讀 Javadoc 甚至源碼才能理解配置。Spring 提供 一致的配置模型,所有 Bean 屬性以 JavaBean 形式暴露,所見即所得。
Spring 推崇 「面向介面編程」,業務邏輯依賴抽象介面而非具體實現,大幅降低耦合,便於替換實現、單元測試與並行開發。
Spring 設計目標:業務物件無需依賴 Spring API。許多業務對象純粹是 POJO,完全不知 Spring 存在,遷移成本極低。
得益於 IoC 與介面編程,依賴關係外部化,單元測試可輕鬆注入 Mock 物件,無需啟動容器、無需複雜設置。
Spring 提供 無 EJB 容器的聲明式事務管理(基於 AOP)、資源抽象等企業級能力。你可以選擇 POJO 或 Local EJB 實現業務介面,不影響調用端代碼。對於單資料庫場景,甚至不需要 JTA 支援。
無論使用原生 JDBC、Hibernate、iBATIS 或 JDO,Spring 提供 一致的 DAO 支援體系:統一異常轉換、模板模式簡化代碼、資源管理自動化。
Spring 的偉大在於:它沒有強迫你使用任何特定技術,而是為你提供了一套更好的構建企業應用的方式。從消除 Singleton 開始,到 IoC、AOP、統一抽象,Spring 重新定義了 Java 企業級開發的標準與最佳實踐。