第一章 Spring的整體架構
Spring是2003年流行起來的一個開源框架宝与,Spring 的作用降低應用的復雜性,它使用JavaBean來替代之前的EJB冶匹。從簡單性,可測試性和松耦合的角度來說咆瘟,任何Java應用都可以從Spring中受益嚼隘。
1.1Spring 整體架構
Spring 是一個分層架構,有20多個模塊袒餐,這些模塊被分層了幾個部分飞蛹,即
(1)core container 核心容器
(2)Data Access/Integeration
(3)Web
(4)AOP
(1)core container 核心容器
包含 Beans 、Core 灸眼、Context卧檐、 El
Core:包含Spring 的核心工具類,Spring的其他組件會用到這個包里的工具焰宣。
Beans:包含配置文件霉囚,創(chuàng)建和管理Bean,以及和IOC和DI操作相關的所有的類。
Contex:t模塊構建在Core和Bean模塊基礎之上匕积,提供了對象訪問方法盈罐,Context繼承了Beans的特性榜跌,為Spring提供了大量的擴展。
EL :提供了表達式語言用于在運行時查詢和操作對象
(2)Data Access/Integeration
Data Access/Integeration包含JDBC 盅粪、ORM 钓葫、OXM 、JMS 和 Transaction
JDBC :提供了一個JDBC抽象層票顾,包含Spring 對JDBC數據訪問進行封裝的所有類础浮。
ORM:為流行的對象-關系映射API 如Hibernate 和MyBaties 提供了一個交互層
OXM: 提供了一個對Object/XML 映射實現的抽象層
JMS: 包含一些生成消費信信息的特性? (rabbit mq, active mq)
Transaction:事務管理(數據庫)
(3)Web
Web模塊建立應用程序上下文模塊(context)之上,為Web應用提供了上下文,Web層包含了Web奠骄、 Web-servlet 豆同、WebStruts、Web-Porlet
Web模塊:提供了基礎的面向web的集成特性戚揭,例如诱告。多文件上傳,使用servlet listenners初始化IOC容器和面向web的應用上下文
這里說的其實就是在web.xml 里的一些配置民晒,如圖1-2
Web-servlet:我們常說的spring mvc 就屬于Web-servlet精居,spring mvc 框架模型范圍內的代碼和web forms 清楚的分離。spring mvc 和spring 其他特性結合起來(比如AOP,Data? )
(4)AOP?
提供了一個符合AOP聯(lián)盟標準的面向切面編程的實現(aop方面的應用有日志和事物管理)
(5)Test
支持使用Junit和Test對Spring組件進行測試