1.spring的整體架構(gòu)##
分層架構(gòu)侠姑,20個(gè)模塊
這些模塊總結(jié)為一下部分
1)核心容器 Core Container
- Core
- Beans
- Context
- Expression Language
Core+Beans: 框架的基礎(chǔ)部分夕土,提供Ioc和依賴注入。重要概念:BeanFactory
Core:Spring框架基本核心工具類韭邓,是其他組件的基本核心。
Beans:所有應(yīng)用都會(huì)用到奄容,包含訪問(wèn)配置文件康聂,創(chuàng)建和管理bean以及進(jìn)行Ioc和DI操作相關(guān)的所有類
Context:構(gòu)建于Core和Beans基礎(chǔ)上,提供一種類似于JNDI注冊(cè)器的框架式的對(duì)象訪問(wèn)方法北滥。
ApplicationContext接口是Context模塊的關(guān)鍵
Expression Language:提供強(qiáng)大的表達(dá)式語(yǔ)言用于在蕓像是查詢和操作對(duì)象刚操。
2)Data Access/Integration
- JDBC——包含了Spring對(duì)JDBC數(shù)據(jù)訪問(wèn)進(jìn)項(xiàng)封裝的所有類
- ORM——對(duì)象-關(guān)系映射API,如JPA再芋、JDO菊霜、Hibernate、iBatis等
- OXM——對(duì)Object/XML映射實(shí)現(xiàn)的抽象層
- JMS——主要包含一些制造和消費(fèi)消息的特性
- Transaction——支持編程和聲明性事務(wù)管理
3)Web
Web層包含了Web济赎、Web-Servlet鉴逞、Web-struts和Web-Porlet模塊
Web模塊
4)AOP
5)Test
支持使用JUnit和TestNG對(duì)Spring組件進(jìn)行測(cè)試。
2.環(huán)境搭建 +源碼下載##
這里需要安裝GitHub和gradle联喘,安裝過(guò)程不再說(shuō)明了华蜒,資料比較多,平時(shí)也一直在用的工具豁遭,直接下載源碼到本地就OK了叭喜。
我的電腦是mac,所以直接brew update && brew install gradle 就把gradle安裝好了蓖谢。
源碼地址:https://github.com/spring-projects/spring-framework.git
我選擇的是3.2.x版本捂蕴,開(kāi)始吧。闪幽。啥辨。。
導(dǎo)入源碼至intellij###
進(jìn)入spring-framework目錄盯腌,執(zhí)行命令:
./gradlew cleanIdea: spring-oxm:compileTestJava
注意:如果你使用master分支溉知,可能會(huì)出現(xiàn)以下錯(cuò)誤:
Unrecognized VM option 'MaxMetaspaceSize=1024m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
這是因?yàn)椤盡axMetaspaceSize=1024m” 這個(gè)參數(shù)配置只出現(xiàn)在jdk 8中,默認(rèn)情況下是在master分支下腕够,猜測(cè)是基于jdk 8開(kāi)發(fā)级乍。
所以解決方式有3種:
- 切換到其他分支,如3.2.X
- 安裝jdk8
- 編輯gradlew帚湘,移去VM option MaxMetaspaceSize.
該過(guò)程需要科學(xué)上網(wǎng)才能成功....
file->new->project from existing sources->選擇spring framework目錄->gradle-next->finish...