首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Spring 核心架構與 IoC/AOP 深度解析:五大模組、依賴注入、Bean 生命週期完整指南

     編輯:Java 綜合教學

Spring 核心架構與 IoC/AOP 深度解析

Spring 框架以IoC 容器與AOP 切面為雙核心,構建企業級應用基礎設施。本文系統梳理五大模組架構、IoC/DI 核心思想、注入方式、Bean 作用域與生命週期全流程。

Spring 五大模組架構

模組核心套件功能定位
資料存取/整合JDBC, ORM, OXM, JMS, Transaction統一 DAO 異常體系、模板化簡化資料庫操作、聲明式事務
Web/遠程MVC, WebService, PortletWeb 工具類、檔案上傳、視圖技術整合、Struts2 等 MVC 整合
AOPSpring AOP, AspectJ橫切關注點模組化(日誌、事務、安全、快取)
核心容器Beans, Core, Context, SpELIoC 容器、Bean 生命週期、事件機制、國際化、資源載入、表達式語言
測試TestContext, Spring MVC Test單元/整合測試支援、TestContext 框架

IoC(控制反轉)與 DI(依賴注入)本質

  • 傳統模式:調用者 `new` 被調用者 → 高耦合、難測試、難替換。
  • IoC 模式:容器負責創建、裝配、管理 Bean,調用者只聲明依賴 → 依賴倒置。
  • DI 形式:建構子注入、Setter 注入、欄位注入(`@Autowired`)、方法注入。
  • 核心價值:鬆耦合、面向介面編程、統一生命週期管理、AOP 橫切邏輯織入基礎。

BeanFactory vs ApplicationContext

Bean 作用域完整對比

特性BeanFactoryApplicationContext
定位IoC 核心介面,延遲載入擴展容器,啟動即載入單例
企業級功能無國際化、事件發布、資源載入、AOP、JNDI、EJB、排程、郵件
常用實作XmlBeanFactoryClassPathXmlApplicationContext, AnnotationConfigApplicationContext
作用域描述銷毀回調適用場景
singleton容器內單一共享實例容器關閉執行無狀態服務
prototype每次請求新建實例不執行有狀態物件
request每個 HTTP 請求一實例請求結束執行Web 請求級資料
session每個 HTTP Session 一實例Session 失效執行用戶會話資料
global sessionPortlet 全域 Session同 sessionPortlet 環境

Singleton Bean 完整生命週期

  1. 實例化
  2. 屬性填充(依賴注入)
  3. `Aware` 介面回調
  4. `BeanPostProcessor` 前置處理
  5. 初始化回調(`InitializingBean` / `@PostConstruct` / `init-method`)
  6. `BeanPostProcessor` 後置處理(AOP 代理生成點)
  7. 放入單例快取,可用
  8. 容器關閉 → 銷毀回調(`DisposableBean` / `@PreDestroy` / `destroy-method`)

Prototype Bean 生命週期關鍵差異

  • 容器僅負責實例化、配置、初始化,完成後交給客戶端,不再管理。
  • 銷毀回調不會執行,客戶端需自行釋放資源。
  • 注入 singleton 時需用 `ObjectFactory`/`Provider` 獲取新實例。

SpEL(Spring Expression Language)核心能力

  • 屬性存取、方法呼叫、建構子呼叫:`#{bean.property}`、`#{bean.method()}`、`#{T(java.lang.Math).random()}`
  • 集合/陣列/Map 操作:`#{list[0]}`、`#{map['key']}`、`#{list.?[age>18]}`(過濾)、`#{list.^[age>18]}`(首個匹配)
  • 邏輯運算、正則匹配、變數定義:`#{a and b}`、`#{'pattern'.matches(str)}`、`#var = expr`

深度掌握 Spring 核心架構與 IoC/AOP 精髓,是構建高內聚、低耦合、可測試、可演進企業級應用的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved