1.spring的整體架構##
分層架構,20個模塊
這些模塊總結為一下部分
1)核心容器 Core Container
- Core
- Beans
- Context
- Expression Language
Core+Beans: 框架的基礎部分,提供Ioc和依賴注入。重要概念:BeanFactory
Core:Spring框架基本核心工具類,是其他組件的基本核心。
Beans:所有應用都會用到,包含訪問配置文件,創建和管理bean以及進行Ioc和DI操作相關的所有類
Context:構建于Core和Beans基礎上,提供一種類似于JNDI注冊器的框架式的對象訪問方法。
ApplicationContext接口是Context模塊的關鍵
Expression Language:提供強大的表達式語言用于在蕓像是查詢和操作對象。
2)Data Access/Integration
- JDBC——包含了Spring對JDBC數據訪問進項封裝的所有類
- ORM——對象-關系映射API,如JPA、JDO、Hibernate、iBatis等
- OXM——對Object/XML映射實現的抽象層
- JMS——主要包含一些制造和消費消息的特性
- Transaction——支持編程和聲明性事務管理
3)Web
Web層包含了Web、Web-Servlet、Web-struts和Web-Porlet模塊
Web模塊
4)AOP
5)Test
支持使用JUnit和TestNG對Spring組件進行測試。
2.環境搭建 +源碼下載##
這里需要安裝GitHub和gradle,安裝過程不再說明了,資料比較多,平時也一直在用的工具,直接下載源碼到本地就OK了。
我的電腦是mac,所以直接brew update && brew install gradle 就把gradle安裝好了。
源碼地址:https://github.com/spring-projects/spring-framework.git
我選擇的是3.2.x版本,開始吧。。。。
導入源碼至intellij###
進入spring-framework目錄,執行命令:
./gradlew cleanIdea: spring-oxm:compileTestJava
注意:如果你使用master分支,可能會出現以下錯誤:
Unrecognized VM option 'MaxMetaspaceSize=1024m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
這是因為”MaxMetaspaceSize=1024m” 這個參數配置只出現在jdk 8中,默認情況下是在master分支下,猜測是基于jdk 8開發。
所以解決方式有3種:
- 切換到其他分支,如3.2.X
- 安裝jdk8
- 編輯gradlew,移去VM option MaxMetaspaceSize.
該過程需要科學上網才能成功....
file->new->project from existing sources->選擇spring framework目錄->gradle-next->finish...