第一章 Spring的整體架構(gòu)
Spring是2003年流行起來的一個開源框架,Spring 的作用降低應(yīng)用的復(fù)雜性,它使用JavaBean來替代之前的EJB。從簡單性,可測試性和松耦合的角度來說,任何Java應(yīng)用都可以從Spring中受益。
1.1Spring 整體架構(gòu)
Spring 是一個分層架構(gòu),有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操作相關(guān)的所有的類。
Contex:t模塊構(gòu)建在Core和Bean模塊基礎(chǔ)之上,提供了對象訪問方法,Context繼承了Beans的特性,為Spring提供了大量的擴展。
EL :提供了表達式語言用于在運行時查詢和操作對象
(2)Data Access/Integeration
Data Access/Integeration包含JDBC 、ORM 、OXM 、JMS 和 Transaction
JDBC :提供了一個JDBC抽象層,包含Spring 對JDBC數(shù)據(jù)訪問進行封裝的所有類。
ORM:為流行的對象-關(guān)系映射API 如Hibernate 和MyBaties 提供了一個交互層
OXM: 提供了一個對Object/XML 映射實現(xiàn)的抽象層
JMS: 包含一些生成消費信信息的特性? (rabbit mq, active mq)
Transaction:事務(wù)管理(數(shù)據(jù)庫)
(3)Web
Web模塊建立應(yīng)用程序上下文模塊(context)之上,為Web應(yīng)用提供了上下文,Web層包含了Web、 Web-servlet 、WebStruts、Web-Porlet
Web模塊:提供了基礎(chǔ)的面向web的集成特性,例如。多文件上傳,使用servlet listenners初始化IOC容器和面向web的應(yīng)用上下文
這里說的其實就是在web.xml 里的一些配置,如圖1-2
Web-servlet:我們常說的spring mvc 就屬于Web-servlet,spring mvc 框架模型范圍內(nèi)的代碼和web forms 清楚的分離。spring mvc 和spring 其他特性結(jié)合起來(比如AOP,Data? )
(4)AOP?
提供了一個符合AOP聯(lián)盟標準的面向切面編程的實現(xiàn)(aop方面的應(yīng)用有日志和事物管理)
(5)Test
支持使用Junit和Test對Spring組件進行測試