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

Spring 框架全景解析:七大模組架構、IOC/AOP 核心機制、事務管理兩種模式與發展史

     編輯:Java 相關知識

Spring 由 Rod Johnson 2000 年倫敦金融業顧問時萌芽,2003 年 SourceForge 開源,2004 年 1.0 釋出。以非侵入性、IOC/AOP 核心、豐富擴展、優質文檔著稱,成為 Java EE 開發事實標準框架,亦可移植 .NET。本文涵蓋發展史、七大模組、核心功能、事務管理實戰。

發展里程碑

  • 2000 年:Rod Johnson 獨立顧問期原型碼
  • 2002 年:《Expert One-on-One J2EE Design and Development》出版,開源釋出
  • 2003 年 2 月:SourceForge 專案建立
  • 2004 年 3 月:1.0 里程碑版,憑藉優質文檔迅速走紅
  • 2004-2005 年:AOP 推廣、與 BEA 合作、商業支援公司成立、首屆 Spring 大會
  • 2006 年:安特衛普大會 400+ 參與者,生態成熟

七大模組架構圖譜

核心容器為基座,其他模組可單獨或組合使用:

模組核心職責
核心容器BeanFactory (工廠模式 + IOC),分離配置與程式碼
Spring Context企業服務:JNDI、EJB、Email、I18N、驗證、排程
Spring AOP將 AOP 整合進框架,任意 Bean 支援 AOP;聲明式事務管理
Spring DAOJDBC DAO 抽象層,有意義異常階層,簡化錯誤處理
Spring ORM整合 JDO、Hibernate、iBATIS、db4o,遵循統一事務/DAO 異常體系
Spring WebWeb 上下文、Struts 整合、多部分請求、請求參數綁定
Spring MVC全功能 MVC 實現,策略介面高度可配置,支援 JSP/Velocity/Tiles/iText/POI 等視圖技術

核心優勢

  • 非侵入性:不強制特定程式設計模式,給予開發者自由度
  • POJO 導向:業務邏輯寫在普通 Java 物件,易測試、易重用、跨環境(Web/EJB/獨立/測試)部署
  • 統一抽象:JDBC、Hibernate、JDO、JMS、JTA 等均有統一模板與異常轉換
  • AOP 無縫整合:聲明式事務、快取、安全、監控等橫切關注點模組化

事務管理深度解析

統一抽象:PlatformTransactionManager

public interface PlatformTransactionManager {
    TransactionStatus getTransaction(TransactionDefinition definition);
    void commit(TransactionStatus status);
    void rollback(TransactionStatus status);
}

TransactionDefinition 定義隔離級別、傳播行為、超時、唯讀;TransactionStatus 提供控制與狀態查詢。

編程式事務管理

方式一:TransactionTemplate(回呼風格,線程安全,類似 JdbcTemplate)

Object result = tt.execute(new TransactionCallback() {
    public Object doTransaction(TransactionStatus status) {
        updateOperation();
        return resultOfUpdateOperation();
    }
});

方式二:直接使用 PlatformTransactionManager


DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def);
try {
    // business logic
    transactionManager.commit(status);
} catch (Exception e) {
    transactionManager.rollback(status);
}

聲明式事務管理(AOP 實現,最受歡迎)

TransactionProxyFactoryBean:目標 Bean 包裝於事務代理,提供 PlatformTransactionManager 引用與事務屬性(傳播、隔離、回滾規則、唯讀)。支援 CGLIB 代理具體類、指定代理介面、前/後攔截器鏈。

事務屬性範例:PROPAGATION_REQUIRED,-MyCheckedException(遇到 MyCheckedException 回滾)、PROPAGATION_REQUIRED,readOnly。

BeanNameAutoProxyCreator:批量包裝 Bean,實現 BeanFactoryPostProcessor,自動後處理上下文中所有 Bean。

Spring 以開源應用框架重新定義 Java 企業開發:IOC 解耦、AOP 模組化橫切關注、統一抽象屏蔽底層複雜性、聲明式事務簡化資源管理。掌握 Spring,即掌握現代 Java 企業級開發的核心槓桿。

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