spring源碼學習環(huán)境準備

前言

工作四年了蚓胸,spring的重要性不言而喻,但是卻沒系統(tǒng)的學習過spring 源碼买雾,感覺好不應該牵敷。今年正好趁著機會好好的學習一下,自己寫博客的意義在于對看書學習的一個總結(jié)椿息,便于以后復習和指正歹袁,因為隨著工作經(jīng)驗和個人能力的進步坷衍,理解的角度和深度都會不一樣,這樣就可以看以前博客条舔,發(fā)現(xiàn)當時自己看書思維的局限性枫耳。
主要借鑒的是spring 源碼深度解析這本書,使用的是spring3.2版本的源碼分析逞刷,雖然現(xiàn)在公司和自己平時都使用的4.x版本嘉涌,但是核心的IOC,AOP夸浅,事務等等源碼的改變不大仑最。

spring架構(gòu)

spring-overview.png

Core Container

  • Core Container(核心容器)包含有Core、Beans帆喇、Context和Expression Language模塊警医。
  • Core和Beans模塊是框架的基礎部分,提供IoC(轉(zhuǎn)控制)和依賴注入特性坯钦。這里的基礎概念是BeanFactory预皇,它提供對Factory模式的經(jīng)典實現(xiàn)來消除對程序性單例模式的需要,并真正地允許你從程序邏輯中分離出依賴關系和配置婉刀。
  • Core模塊主要包含Spring框架基本的核心工具類吟温,Spring的其他組件要都要使用到這個包里的類,Core模塊是其他組件的基本核心突颊。當然你也可以在自己的應用系統(tǒng)中使用這些工具類鲁豪。
  • Beans模塊是所有應用都要用到的,它包含訪問配置文件律秃、創(chuàng)建和管理bean以及進行Inversion of Control / Dependency Injection(IoC/DI) 操作相關的所有類爬橡。
  • Context模塊構(gòu)建于Core和Beans模塊基礎之上,提供了一種類似于JNDI注冊器的框架式的對象訪問方法棒动。Context模塊繼承了 Beans的特性糙申,為Spring核心提供了大量擴展,添加了對國際化(例如資源綁定)船惨、事件傳播柜裸、資源加載和對Context的透明創(chuàng)建的支持。Context模塊同時也支持J2EE的一些特性粱锐,例如EJB粘室、JMX和基礎的遠程處理。ApplicationContext接口是Context模塊的關鍵卜范。
  • Expression Language 模塊提供了一個強大的表達式語言用于在運行時查詢和操縱對象衔统。它是 JSP 2.1規(guī)范中定義的 unifed expression language的一個擴展。該語言支持設置/獲取屬性的值,屬性的分配锦爵,方法的調(diào)用舱殿,訪問數(shù)組上下文(accessiong the context of arrays)、容器和索引器险掀、邏輯和算術運算符沪袭、命名變量以及從Spring的 IoC容器中根據(jù)名稱檢索對象。它也支持list投影樟氢、選擇和一般的list聚合冈绊。

Data Access/Integration

Data Access/Integration層包含有 JDBC、ORM埠啃、OXM死宣、JMS和Transaction模塊
Transaction 模塊支持編程和聲明性的事務管理,這些事務類必須實現(xiàn)特定的接口碴开,并且對所有的POJO都適用毅该。

Web

Web上下文模塊建立在應用程序上下文模塊之上,為基于Web的應用程序提供了上下文潦牛。所以眶掌, Spring框架支持與Jakarta Struts的集成。Web模塊還簡化了處理多部分請求以及將請求參數(shù)綁定到域?qū)ο蟮墓ぷ靼屯搿eb層包含了Web朴爬、Web-Servlet、Web-Struts和Web-Porlet模塊橡淆,

AOP

AOP模塊提供了一個符合AOP聯(lián)盟標準的面向切面編程的實現(xiàn)寝殴,它讓你可以定義例如方法攔截器和切點,從而將邏輯代碼分開明垢,降低它們之間的耦合性。利用 source-level 的元數(shù)據(jù)功能市咽,還可以將各種行為信息合并到你的代碼中

Test

Test模塊支持使用JUnit和TestNG對Spring組件進行測試痊银。

spring源碼編譯

下載gradle

安裝好之后

?  ~ gradle -version

------------------------------------------------------------
Gradle 3.5
------------------------------------------------------------

Build time:   2017-04-10 13:37:25 UTC
Revision:     b762622a185d59ce0cfc9cbc6ab5dd22469e18a6

Groovy:       2.4.10
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_152-ea (Oracle Corporation 25.152-b02)
OS:           Mac OS X 10.12.4 x86_64

安裝git

?  ~ git --version
git version 2.10.1

安裝git成功之后,選擇自己的spring版本,
spring3.2.6git地址

git clone https://github.com/spring-projects/spring-framework.git

下載之后

編譯步驟:

  • 進入到相應的目錄下施绎,進行預編譯溯革,這一步需要很長時間,學會科學上網(wǎng)
gradlew :spring-oxm:compileTestJava

第二步導入到idea中谷醉,F(xiàn)ile -> New -> Project from Existing Sources -> Select build.gradle
環(huán)境準備成功

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末致稀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子俱尼,更是在濱河造成了極大的恐慌抖单,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異矛绘,居然都是意外死亡耍休,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門货矮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來羊精,“玉大人,你說我怎么就攤上這事囚玫⌒酰” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵抓督,是天一觀的道長燃少。 經(jīng)常有香客問我,道長本昏,這世上最難降的妖魔是什么供汛? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮涌穆,結(jié)果婚禮上怔昨,老公的妹妹穿的比我還像新娘。我一直安慰自己宿稀,他們只是感情好趁舀,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祝沸,像睡著了一般矮烹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上罩锐,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天奉狈,我揣著相機與錄音,去河邊找鬼涩惑。 笑死仁期,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的竭恬。 我是一名探鬼主播跛蛋,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痊硕!你這毒婦竟也來了赊级?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤岔绸,失蹤者是張志新(化名)和其女友劉穎理逊,沒想到半個月后橡伞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡挡鞍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年骑歹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墨微。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡道媚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翘县,到底是詐尸還是另有隱情最域,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布锈麸,位于F島的核電站镀脂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忘伞。R本人自食惡果不足惜薄翅,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望氓奈。 院中可真熱鬧翘魄,春花似錦、人聲如沸舀奶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽育勺。三九已至但荤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涧至,已是汗流浹背腹躁。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留南蓬,地道東北人纺非。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像蓖康,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子垒手,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容