spring-core

spring最核心的組件是BeanFactory羡洛,看了源碼才發(fā)現(xiàn)趁曼,BeanFactory并非定義在spring-core中沦辙,那spring-core都有啥東東司浪?

spring-core主要提供以下服務(wù)消痛,為BeanFactory的定義提供基礎(chǔ)服務(wù)且叁。

1, ConversionService


ConversionService.png

提供可配置的類型轉(zhuǎn)換服務(wù)

Converters.png

依賴內(nèi)部的注冊表,

DefaultConversionService.png

默認(rèn)支持的類型轉(zhuǎn)換

查找匹配的Converter


find-1.png
find-2.png

2秩伞, Environment
PropertySource:任何能提供key-value查找能力的數(shù)據(jù)源
MutablePropertySources:PropertySource集合逞带,可動(dòng)態(tài)增刪
profile:bean定義的邏輯分組,一個(gè)profile表示一組bean纱新,只有active的profile對應(yīng)的bean才會(huì)注冊到bean容器里展氓。
Environment:繼承PropertyResolver,依賴內(nèi)部的MutablePropertySources提供key查找服務(wù)脸爱,存儲(chǔ)當(dāng)前active的profile遇汞。Environment表示用profile標(biāo)識的一組key-value,作為其他關(guān)聯(lián)到profile的組件(bean定義)的Context簿废。

StandardEnvironment.png

StandardEnvironment默認(rèn)支持系統(tǒng)屬性和系統(tǒng)變量

profile.png

如果profile沒有顯示指定叨襟,默認(rèn)從當(dāng)前Environment的key值spring.profiles.active獲取,逗號分割十绑。

StandardServletEnvironment.png

StandardServletEnvironment屬性源中額外添加了ServletContext和ServletConfig中的key-value呼奢。

3, Resource
資源就是一個(gè)基于各種協(xié)議+特定路徑的InputStream


協(xié)議.png

FileUrlResource:基于文件路徑的資源


FileUrlResource-1.png
FileUrlResource-2.png

ClassPathResource:


ClassPathResource-1.png
ClassPathResource-2.png

4单料, 序列化和反序列化


默認(rèn)基于jdk的序列化.png
默認(rèn)基于jdk的反序列化.png

5埋凯, 訪問類型元數(shù)據(jù):可以不加載類,直接解析字節(jié)碼扫尖,spring boot應(yīng)用類型推斷的基礎(chǔ)白对。


類元數(shù)據(jù).png
類和方法及其注解元數(shù)據(jù).png
基于反射.png

基于反射實(shí)現(xiàn)的標(biāo)準(zhǔn)元數(shù)據(jù)


基于asm.png

基于asm直接解析字節(jié)碼,不需要加載class换怖,這就是打開spring boot源碼各種類未定義但是程序可以運(yùn)行的原因甩恼。類在字節(jié)碼執(zhí)行過程中遇到了才會(huì)加載,使用類的方法首先要有對象,構(gòu)造對象的任務(wù)都委托給了spring的BeanFactory媳拴,在spring boot中BeanFactory首先會(huì)檢查注解中的條件是否滿足黄橘,指定的類是否可以使用classloader加載,不滿足條件的不加載屈溉,就算字節(jié)碼無法編譯通過塞关,只要不加載就不會(huì)影響程序運(yùn)行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末子巾,一起剝皮案震驚了整個(gè)濱河市帆赢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌线梗,老刑警劉巖椰于,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仪搔,居然都是意外死亡瘾婿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門烤咧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偏陪,“玉大人,你說我怎么就攤上這事煮嫌〉亚” “怎么了昌阿?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長懦冰。 經(jīng)常有香客問我,道長儿奶,這世上最難降的妖魔是什么鳄抒? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任闯捎,我火速辦了婚禮瓤鼻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贤重。我一直安慰自己,他們只是感情好并蝗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布秸妥。 她就那樣靜靜地躺著,像睡著了一般粥惧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上突雪,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音咏删,去河邊找鬼。 笑死问词,一個(gè)胖子當(dāng)著我的面吹牛督函,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播激挪,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼侨核,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了灌灾?” 一聲冷哼從身側(cè)響起搓译,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锋喜,沒想到半個(gè)月后些己,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘿般,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年段标,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炉奴。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逼庞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞻赶,到底是詐尸還是另有隱情赛糟,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布砸逊,位于F島的核電站璧南,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏师逸。R本人自食惡果不足惜司倚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧动知,春花似錦皿伺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拆讯,卻和暖如春脂男,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背种呐。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工宰翅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爽室。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓汁讼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阔墩。 傳聞我的和親對象是個(gè)殘疾皇子嘿架,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

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