提到 Spring,就不得不提其作者 Rod Johnson。2002 年,他出版了《Expert One-on-One J2EE Design and Development》一書,書中對傳統 J2EE 技術的臃腫與低效提出質疑,並提出了 Interface21 框架——這正是 Spring 的雛形。2003 年 2 月,Spring 正式成為 SourceForge 上的開源專案。
Spring 致力於為 Java EE 應用提供全方位解決方案,而非專注於單一層面。它被稱為企業級應用開發的「一站式」選擇,但並不試圖取代現有框架,而是以高度開放的態度實現無縫整合。Spring 框架由約 20 個功能模組組成,歸類為六大核心模組:Core Container、Data Access/Integration、Web、AOP、Instrumentation 及 Test。
控制反轉,又稱依賴注入,是一種面向對象設計原則,旨在降低代碼耦合度。什麼是依賴?當類 A 的方法中實例化類 B 並調用其方法時,A 依賴於 B。傳統開發中,類之間的強耦合導致系統難以擴展、維護與測試。簡單工廠模式雖能降低耦合,但大量工廠類會增加工作量。Spring 提供完整的 IOC 容器,接管對象創建與依賴管理,讓開發者專注於業務邏輯。




AOP 是 OOP 的有益補充,專門處理橫切關注點,如權限控制、事務管理、日誌記錄、性能監控等。這些邏輯分散在業務代碼中,修改時需動刀業務方法。AOP 允許在不修改源碼的前提下,動態織入增強邏輯,核心思想源於代理模式。





運行結果: