Spring學(xué)習(xí)速成

Spring分成四部分
IoC基礎(chǔ)容器
AOP面向切面編程
Spring整合Web環(huán)境
Web層解決方案-Spring MVC

三個思想
IoC - Inversion of Control
DI - Dependency Injection
AOP - Aspect Oriented Programming


image.png

Spring - 一個輕量級的開源Java開發(fā)應(yīng)用框架


image.png
image.png

在pom.xml中引入spring-context届慈,Maven會自動導(dǎo)入Beans,core和SpEL(Spring表達式)

BeanFactory - IoC


image.png

代碼實現(xiàn)(使用IDEA):

  1. 創(chuàng)建項目,選擇Maven


    image.png
  2. 修改pom.xml,添加依賴spring-context,刷新Maven圖標


    image.png
  3. 創(chuàng)建兩個個默認的接口和對應(yīng)的接口文件


    image.png

    小技巧:通過菜單Copy Reference可以拷貝完整路徑的類名


    image.png
  4. 在resource目錄下創(chuàng)建beans.xml配置文件,并添加第一個bean的定義


    image.png

    image.png
  5. 在Main啟動類添加以下代碼搁进,并運行程序∥敉罚可以看到工廠自動創(chuàng)建的bean被打印出來了


    image.png

    小技巧:new創(chuàng)建的對象類和變量名可以通過.var自動生成


    image.png

BeanFactory - DI


image.png

image.png

image.png

ApplicationContext - Spring的容器


image.png

BeanFactory和ApplicationContext的關(guān)系和區(qū)別
在Debug環(huán)境下能看到Context實例下的BeanFactory創(chuàng)建的多個Bean饼问,并存放在singletonObjects的HashMap里


image.png

繼承關(guān)系


image.png
image.png

Bean配置詳解


image.png

id - 可選,beanFactory下的singletonObjects map中的key揭斧,沒設(shè)置也沒name的時候莱革,類全路徑名作為key

name - 作為別名,用逗號分隔多個name讹开,beanFactory下的aliasMap map中會出現(xiàn)盅视,沒設(shè)置id的時候,第一個name作為key旦万,其他作為alias

scope - 默認singeton闹击,也可以是prototype,不會默認創(chuàng)建bean纸型,每次getBean都會生成一次拇砰,而且bean不會加入singletonObjects中梅忌。在單純spring-context模式下只有兩個選項狰腌,如果加入spring-mvc,會多session和request兩個選項

lazy-init - 默認false牧氮,對beanFactory無效

init-method - 先執(zhí)行完整的bean創(chuàng)建琼腔,例如包括通過property初始化;如果類加上
InitializingBean踱葛,則依次執(zhí)行丹莲;init-method最后執(zhí)行

destroy-method - 容器關(guān)閉,bean銷毀前調(diào)用


image.png

兩種構(gòu)造bean方法尸诽,構(gòu)造函數(shù)方法甥材,工廠方法
構(gòu)造方法:分為有參和無參;如果有參性含,用子標簽constructor-arg洲赵,這個子標簽不僅僅構(gòu)造函數(shù)用到,工廠方法創(chuàng)建時也會用到


image.png

工廠方法:分為靜態(tài)工廠,實例工廠叠萍,通過factoryBean規(guī)范來延遲實例化bean芝发,主要用于第三方庫,不是自己的源代碼

靜態(tài)工廠方式


image.png

實例工廠方式


image.png

factoryBean方式
通過實現(xiàn)FactoryBean接口類苛谷,Bean會延遲創(chuàng)建


image.png

創(chuàng)建出來的Bean會存放在factoryBeanObjectCache里辅鲸,SingletonObjects下只有factoryBean


image.png

依賴注入的數(shù)據(jù)類型
bean的set方法,構(gòu)造bean的方法
依賴注入的數(shù)據(jù)類型:普通屬性(value傳值)腹殿,對象(ref傳值)独悴,集合包括List,Map锣尉,Properties

List方式
image.png
image.png

數(shù)據(jù)類型Set和List類似

Properties和Map數(shù)據(jù)類型的注入


image.png

image.png

image.png

自動裝配绵患,參數(shù)byName,byType


image.png

根據(jù)Profile生成Bean

  1. 通過代碼設(shè)置Profile
  2. 通過命令行設(shè)置-Dspring.profiles.active=test


    image.png

可以多個XML配置文件悟耘,由一個主的XML引入


image.png

Alias標簽同name落蝙,維護在aliasMap中

自定義命名空間標簽的使用

獲取bean的三種方法

  1. bean名字
  2. 類名字
  3. bean名字+類名字 - 結(jié)果不用強轉(zhuǎn)


    image.png

非自定義的Bean引入

  1. 直接通過Class引入,以Druid為例


    image.png
  2. 通過FactoryBean的靜態(tài)構(gòu)造方法暂幼,以jdbc的connection為例


    image.png

持續(xù)更新中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筏勒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旺嬉,更是在濱河造成了極大的恐慌管行,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邪媳,死亡現(xiàn)場離奇詭異捐顷,居然都是意外死亡,警方通過查閱死者的電腦和手機雨效,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門迅涮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人徽龟,你說我怎么就攤上這事叮姑。” “怎么了据悔?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵传透,是天一觀的道長。 經(jīng)常有香客問我极颓,道長朱盐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任菠隆,我火速辦了婚禮兵琳,結(jié)果婚禮上骚烧,老公的妹妹穿的比我還像新娘。我一直安慰自己闰围,他們只是感情好赃绊,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著羡榴,像睡著了一般碧查。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上校仑,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天忠售,我揣著相機與錄音,去河邊找鬼迄沫。 笑死稻扬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的羊瘩。 我是一名探鬼主播泰佳,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尘吗!你這毒婦竟也來了逝她?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤睬捶,失蹤者是張志新(化名)和其女友劉穎黔宛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體擒贸,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡臀晃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了介劫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徽惋。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蜕猫,靈堂內(nèi)的尸體忽然破棺而出寂曹,到底是詐尸還是另有隱情,我是刑警寧澤回右,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站漱挚,受9級特大地震影響翔烁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旨涝,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一蹬屹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦慨默、人聲如沸贩耐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潮太。三九已至,卻和暖如春虾攻,著一層夾襖步出監(jiān)牢的瞬間铡买,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工霎箍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奇钞,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓漂坏,卻偏偏與公主長得像景埃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子顶别,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

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