spring實戰(zhàn)

spring的策略
  • 基于pojo的輕量級和最小入侵性編程
  • 通過依賴注入和面向接口實現(xiàn)松耦合
  • 基于切面和慣例進行聲明式編程
  • 通過切面和模板減少樣式代碼
何為依賴注入

簡單來說琳省,任何一個應(yīng)用都是有兩個或者兩個以上的類組成喷楣,這些類相互之間進行協(xié)作完成業(yè)務(wù)邏輯,通常门粪,每個對象負(fù)責(zé)管理與自己相互協(xié)作的對象的引用,所謂依賴注入就是將這些對象的關(guān)聯(lián)交給容器烹困,降低代碼的耦合度玄妈。依賴注入的最大優(yōu)點就是松耦合

如何注入一個特定的bean

創(chuàng)建應(yīng)用組件之間協(xié)作行為通常稱為裝配,spring有多種裝配bean的方式髓梅,基于xml是最常見的裝配方式拟蜻。

spring 是如何工作的

spring通過應(yīng)用上下文(ApplicationContext)裝載bean的定義并把它們組裝起來,spring應(yīng)用上下文負(fù)責(zé)bean的創(chuàng)建和組裝枯饿。

一個簡單的demo實例:spring裝載管理bean

面向切面編程(AOP)

面向切面編程的目的就是把遍布應(yīng)用在各處的功能分離出來形成可重用的組件
一個簡單的例子見上面^^^

裝配bean
  • 使用構(gòu)造器傳參
<bean id="jugger" class="com.yuxi.initbean.idol.Jugger">
        // 需要注意這個構(gòu)造函數(shù)必須要有
        <constructor-arg value="15"/>
    </bean> 
  • 構(gòu)造器引用對象
<bean id="poemJugger" class="com.yuxi.initbean.idol.PoeticJugger">
        <constructor-arg value="16"/>
       // ref 引用對象
        <constructor-arg ref="poem"/>
    </bean>
    <bean id="poem" class="com.yuxi.initbean.idol.Sonnet29"></bean>
  • 通過工廠方法創(chuàng)建bean
    在很多時候我們會使用單例酝锅,但是單例沒有構(gòu)造函數(shù),那么我們怎么辦奢方?
 <bean id="stage" class="com.yuxi.initbean.idol.single.init.Stage" 
// 通過factory-method          
factory-method="getInstance"/>
  • bean 的作用域
    首先搔扁,需要說明的是,所有的spring bean 默認(rèn)的都是單例的
    在spring中管理bean的作用域的是:scope
    scope類型有: singleton ,prototype,request,session,global-session
    但是蟋字,我們經(jīng)常使用的也就是singleton,prototype都很少使用稿蹲。

  • 屬性注入
    通過屬性注入bean

    <bean id="instrumentList" class="com.yuxi.initbean.idol.properties.Instrumentlist">
//屬性注入
        <property name="instrument" ref="piano"></property>
        <property name="song" value="champions"/>
    </bean>
    <bean id="piano" class="com.yuxi.initbean.idol.properties.Piano"/>
最小化spring XML配置
  • 自動裝配
    有助于減少甚至消除配置<property>元素和<constructor-arg>元素,讓spring自動識別如何裝配bean的依賴關(guān)系
  • 自動檢測
    比自動裝配更進一步愉老,讓spring能夠自動識別哪些類需要配置成springbean场绿,從而減少對bean元素的使用

當(dāng)自動裝配和自動檢測一起使用的時候會有神奇的效果,spring的XML文件會顯著的減少

spring的自動裝配策略:

  • byName
    把與bean的屬性具有相同名字或者ID的其他的bean自動裝配到bean對應(yīng)的屬性中,如果沒有不進行裝配
  • byType
    把與bean的屬性具有相同類型的其他的bean自動裝配到bean的對應(yīng)的屬性里焰盗,如果沒有不進行裝配
  • constructor
    把與bean的構(gòu)造器入?yún)⒕哂邢嗤愋偷钠渌鸼ean自動裝配到bean構(gòu)造器對應(yīng)入?yún)⒅?/li>
  • autodetect
    首先嘗試使用constructor鏡像自動裝配璧尸,如果失敗按照byType
使用注解裝配

spring默認(rèn)是禁止使用注解的需要設(shè)置開啟注解
<context:annotation-config/>

  • @Autowired
  • @Resource
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市熬拒,隨后出現(xiàn)的幾起案子爷光,更是在濱河造成了極大的恐慌,老刑警劉巖澎粟,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛀序,死亡現(xiàn)場離奇詭異,居然都是意外死亡活烙,警方通過查閱死者的電腦和手機徐裸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啸盏,“玉大人重贺,你說我怎么就攤上這事』嘏常” “怎么了气笙?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長怯晕。 經(jīng)常有香客問我潜圃,道長,這世上最難降的妖魔是什么舟茶? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任谭期,我火速辦了婚禮,結(jié)果婚禮上吧凉,老公的妹妹穿的比我還像新娘崇堵。我一直安慰自己,他們只是感情好客燕,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狰贯,像睡著了一般也搓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涵紊,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天傍妒,我揣著相機與錄音,去河邊找鬼摸柄。 笑死颤练,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的驱负。 我是一名探鬼主播嗦玖,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼患雇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宇挫?” 一聲冷哼從身側(cè)響起苛吱,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎器瘪,沒想到半個月后翠储,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡橡疼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年援所,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片欣除。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡住拭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耻涛,到底是詐尸還是另有隱情废酷,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布抹缕,位于F島的核電站澈蟆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏卓研。R本人自食惡果不足惜趴俘,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奏赘。 院中可真熱鬧寥闪,春花似錦、人聲如沸磨淌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梁只。三九已至缚柳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搪锣,已是汗流浹背秋忙。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留构舟,地道東北人灰追。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弹澎。 傳聞我的和親對象是個殘疾皇子朴下,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

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

  • 本章內(nèi)容: 聲明Bean 構(gòu)造器注入和Setter方法注入 裝配Bean 控制bean的創(chuàng)建和銷毀 任何一個成功的...
    謝隨安閱讀 1,645評論 0 9
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)裁奇,斷路器桐猬,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 文章作者:Tyan博客:noahsnail.com 3.4 Dependencies A typical ente...
    SnailTyan閱讀 4,166評論 2 7
  • 本章內(nèi)容: 面向切面編程的基本原理 通過POJO創(chuàng)建切面 使用@AspectJ注解 為AspectJ切面注入依賴 ...
    謝隨安閱讀 3,150評論 0 9
  • 出行的意義 不在山水,在心情 遇事不急刽肠,不慌 遇到問題要逐步解決 自己做自己情緒的主人 自己的身體由自己控制 允許...
    四月的射手座閱讀 181評論 0 0