Spring框架是壹個分層架構,由七個定義良好的模塊組成。Spring模塊構建在核心容器上,它定義了創建、配置和管理bean的方式,如圖1所示。
組成Spring框架的每個模塊(或組件)可以單獨存在,也可以與壹個或多個其他模塊壹起實現。每個模塊的功能如下:
核心容器:核心容器提供了Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實現。BeanFactory使用控制反轉(IOC)模式將應用程序的配置和依賴規範與實際的應用程序代碼分開。
Spring context: Spring context是壹個配置文件,為Spring框架提供上下文信息。Spring context包括企業服務,如JNDI、EJB、電子郵件、國際化、校驗和調度功能。
Spring AOP:通過配置管理特性,Spring AOP模塊直接將面向方面的編程功能集成到Spring框架中。因此,很容易使Spring框架管理的任何對象都支持AOP。Spring AOP模塊為基於Spring的應用程序中的對象提供事務管理服務。通過使用Spring AOP,聲明式事務管理可以集成到應用程序中,而不依賴於EJB組件。
Spring DAO:JDBC DAO抽象層提供了壹個有意義的異常層次結構,可以用來管理不同數據庫供應商拋出的異常處理和錯誤消息。異常層次結構簡化了錯誤處理,並大大減少了需要編寫的異常代碼量(例如打開和關閉連接)。Spring DAO的面向JDBC的異常遵循壹般的DAO異常層次結構。
Spring ORM:Spring framework插入了幾個ORM框架,從而提供了ORM的對象關系工具,包括JDO、Hibernate和iBatis SQL Map。所有這些都遵循Spring的通用事務和DAO異常層次結構。
Spring Web模塊:Web上下文模塊建立在應用程序上下文模塊之上,為基於Web的應用程序提供上下文。因此,Spring框架支持與Jakarta Struts的集成。Web模塊還簡化了處理多部分請求和將請求參數綁定到域對象的工作。
Spring MVC框架:MVC框架是壹個用於構建Web應用程序的全功能MVC實現。通過策略接口,MVC框架變得高度可配置,MVC容納了大量視圖技術,包括JSP、Velocity、Tiles、iText和POI。
Spring框架的功能可以在任何J2EE服務器上使用,並且大部分功能也適用於非托管環境。Spring的核心點是支持不綁定到特定J2EE服務的可重用業務和數據訪問對象。毫無疑問,這樣的對象可以在不同的J2EE環境(Web或EJB)、獨立的應用程序和測試環境中重用。