『互聯(lián)網(wǎng)架構(gòu)』軟件架構(gòu)-spring源碼之spring結(jié)構(gòu)概述
spring從07年接觸到目前2018年也差不多10年了弓颈,一個(gè)java的框架為什么能火這么多年。很多人對spring的使用輕車熟路鸠姨,但是從未解讀過spring的源碼坯屿,老鐵跟我一起看看源碼,了解下內(nèi)部的構(gòu)造检激,只有源碼讀過的人才能獲得上乘武功肴捉,軟件開發(fā)不只是搬磚的老鐵。內(nèi)功熟悉原理呵扛,外功是靈活使用每庆。內(nèi)功好比電力,外功好比電機(jī)今穿。內(nèi)功的電力越強(qiáng),電機(jī)的馬力越大才能發(fā)揮巨大作用伦籍,相反如果電力弱蓝晒,馬力在強(qiáng)也是不行的。spring從單一的jar包帖鸦,發(fā)展到現(xiàn)在十多個(gè)jar包芝薇,spring mvc 到spring boot 到spring cloud,從需要配置到現(xiàn)在0配置作儿,封裝的越來越厲害洛二,導(dǎo)致的結(jié)果,如果不了解內(nèi)核在強(qiáng)的馬力,遇到問題可能無從下手晾嘶。一起熟讀spring源碼尤為重要妓雾。
?2002年開發(fā)者Juergen Hoeller和Yann Caroff說服Rod Johnson創(chuàng)建一個(gè)基于基礎(chǔ)結(jié)構(gòu)代碼的開源項(xiàng)目。Rod蛾狗,Juergen和Yann于2003年2月左右開始合作該項(xiàng)目晋涣。Yan為新框架創(chuàng)造了“Spring”的名字。據(jù)Rod介紹沉桌,Spring是傳統(tǒng)J2EE的“冬天”之后的新開始谢鹊!?
自2004年1.0版本發(fā)布以來,Spring框架迅速發(fā)展谱轨。Spring 2.0于2006年10月發(fā)布戒幔,到那時(shí),Spring的下載量超過了100萬土童。Spring 2.0具有可擴(kuò)展的XML配置功能诗茎,用于簡化XML配置,支持Java 5献汗,額外的IoC容器擴(kuò)展敢订,支持動(dòng)態(tài)語言(如groovy,aop增強(qiáng)功能和新的bean范圍)罢吃。
spring-core和?spring-beans?模塊是[Spring框架的基礎(chǔ)],包括控制反轉(zhuǎn)和依賴注入等功能梢夯。BeanFactory是工廠模式的微妙實(shí)現(xiàn)言疗,它移除了編碼式單例的需要,并且可以把配置和依賴從實(shí)際編碼邏輯中解耦颂砸。
[Context](?spring-context?)模塊是在[Core和Bean]模塊的基礎(chǔ)上建立起來的噪奄,它以一種類似于JNDI注冊的方式訪問對象。Context模塊繼承自Bean模塊人乓,并且添加了國際化(比如勤篮,使用資源束)、事件傳播撒蟀、資源加載和透明地創(chuàng)建上下文(比如叙谨,通過Servelet容器)等功能。Context模塊也支持Java EE的功能保屯,比如EJB手负、JMX和遠(yuǎn)程調(diào)用等。?ApplicationContext?接口是Context模塊的焦點(diǎn)姑尺。?spring-context-support?提供了對第三方庫集成到Spring上下文的支持竟终,比如緩存(EhCache, Guava, JCache)、郵件(JavaMail)切蟋、調(diào)度(CommonJ, Quartz)统捶、模板引擎(FreeMarker, JasperReports, Velocity)等。
?Web?
spring-test模塊通過JUnit和TestNG組件支持[單元測試]和[集成測試]檐晕。它提供了一致性地[加載]和[緩存]Spring上下文,也提供了用于單獨(dú)測試代碼的[模擬對象](mock object)蚌讼。
最末尾添加兩句話:
192.30.253.112?http://github.com git clone https://github.com/spring-projects/spring-framework.git #切換到對應(yīng)分支 git checkout -b v4.3.8 v4.3.8.RELEASE?
2.通過另一個(gè)類new出來然后傳遞到指定需要的類里面
PS:直擊源碼的學(xué)習(xí)簿晓,springboot和springcloud慢慢主流眶拉,很多大型框架的思路都是借鑒了spring,相信讀懂了常用的spring源碼后憔儿,以后的路會(huì)越走越寬廣忆植。會(huì)在后面的博文里面多加入更多自己的心得體會(huì),更加詳細(xì)的一起學(xué)習(xí)spring源碼。
在此我向大家推薦一個(gè)java互聯(lián)網(wǎng)架構(gòu)學(xué)習(xí)交流群朝刊。交流學(xué)習(xí)Q群號:815220368 加群獲得以上學(xué)習(xí)視頻耀里,群里面還會(huì)分享一些資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis拾氓,Netty源碼分析冯挎,高并發(fā)、高性能痪枫、分布式织堂、微服務(wù)架構(gòu)的原理,JVM性能優(yōu)化奶陈、分布式架構(gòu)等這些成為架構(gòu)師必備的知識體系。還能領(lǐng)取免費(fèi)的學(xué)習(xí)資源附较,目前受益良多
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門臀脏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冀自,你說我怎么就攤上這事揉稚。” “怎么了熬粗?”我有些...
- 文/不壞的土叔 我叫張陵搀玖,是天一觀的道長。 經(jīng)常有香客問我驻呐,道長灌诅,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任含末,我火速辦了婚禮猜拾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘答渔。我一直安慰自己关带,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宋雏,像睡著了一般芜飘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磨总,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鲁驶!你這毒婦竟也來了鉴裹?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬榮一對情侶失蹤钥弯,失蹤者是張志新(化名)和其女友劉穎径荔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脆霎,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡总处,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了睛蛛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹦马。...
- 正文 年R本政府宣布试溯,位于F島的核電站,受9級特大地震影響郊酒,放射性物質(zhì)發(fā)生泄漏遇绞。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一燎窘、第九天 我趴在偏房一處隱蔽的房頂上張望摹闽。 院中可真熱鬧,春花似錦褐健、人聲如沸付鹿。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽舵匾。三九已至俊抵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坐梯,已是汗流浹背徽诲。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長得像蹋辅,于是被迫代替她去往敵國和親钱贯。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 原創(chuàng)文章晕翠,歡迎轉(zhuǎn)載喷舀。轉(zhuǎn)載請注明:轉(zhuǎn)載自IT人故事會(huì),謝謝淋肾!原文鏈接地址:『互聯(lián)網(wǎng)架構(gòu)』軟件架構(gòu)-spring源碼之...
- 概述 Spring框架是在Java開發(fā)中廣泛使用的框架之一杠河,是SSH中還能持久熱門的長青樹碌尔。在Struts 2被安...
- URL支持26個(gè)英文字母、數(shù)字和少數(shù)幾個(gè)特殊字符券敌,當(dāng)URL中包含非標(biāo)準(zhǔn)的字符時(shí)唾戚,就需要對其進(jìn)行UTF8編碼,如果包...