日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring核心(ioc控制反转)

發布時間:2025/3/21 javascript 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring核心(ioc控制反转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


IoC,Inversion Of Control 即控制反轉,由容器來管理業務對象之間的依賴關系,而非傳統方式中的由代碼來管理。

其本質。即將控制權由應用程序代碼轉到了外部容器,控制權的轉移就是所謂的反轉,其帶來的最大的優點是減少了業務對象之間的依賴程度,即實現了解耦。

?

Spring的IoC容器主要使用DI(Dependency Injection,依賴注入)方式實現的。不須要主動查找,對象的查找、定位和創建所有由容器管理,容器會將符合依賴關系的對象通過屬性(setter等)或者構造函數傳遞給須要的對象。

?

使用IoC能夠帶來下面優點:

1、查詢依賴操作和應用代碼分離。大量降低了Factory和Singleton的數量,使代碼層次更加清晰。主要原因是我們不再查找、定位、創建和管理對象之間的依賴關系了。都交給IoC容器管理了

2、沒有侵入性,不須要依賴容器的API,也不須要實現一些特殊接口。這樣我們的受控對象能夠搬出容器進而單獨使用。

3、能夠從IoC容器中直接獲得一個對象然后直接使用。而無需考慮對象的創建過程。(工廠模式)

?

從網上看了一個樣例,認為不錯。貼過來幫助我們理解:

我們是怎樣找女朋友的?常見的情況是,我們到處去看哪里有長得美麗身材又好的mm。然后打聽她們的興趣愛好、qq號、電話號、ip號、iq號………,想辦法認識她們。投其所好送其所要,然后嘿嘿……這個過程是復雜深奧的。我們必須自己設計和面對每一個環節。傳統的程序開發也是如此。在一個對象中,假設要使用另外的對象,就必須得到它(自己new一個,或者從JNDI中查詢一個),使用完之后還要將對象銷毀(比方Connection等)。對象始終會和其它的接口或類藕合起來。

? 那么IoC是怎樣做的呢?有點像通過婚介找女朋友,在我和女朋友之間引入了一個第三者:婚姻介紹所。婚介管理了非常多男男女女的資料,我能夠向婚介提出一個列表,告訴它我想找個什么樣的女朋友,比方長得像李嘉欣,身材像林熙雷。唱歌像周杰倫。速度像卡洛斯,技術像齊達內之類的。然后婚介就會依照我們的要求。提供一個mm,我們僅僅須要去和她談戀愛、結婚即可了。

簡單明了,假設婚介給我們的人選不符合要求,我們就會拋出異常。整個過程不再由我自己控制,而是有婚介這樣一個類似容器的機構來控制。Spring所倡導的開發方式就是如此。全部的類都會在spring容器中登記。告訴spring你是個什么東西,你須要什么東西,然后spring會在系統執行到適當的時候,把你要的東西主動給你,同一時候也把你交給其它須要你的東西。全部的類的創建、銷毀都由 spring來控制,也就是說控制對象生存周期的不再是引用它的對象,而是spring。對于某個詳細的對象而言。曾經是它控制其它對象,如今是全部對象都被spring控制。所以這叫控制反轉

?

事實上,我們能夠把IoC看做是工廠模式的升華。IoC好比是一個大工廠,僅僅只是在這個大工廠里生成的對象都是在XML文件里定義的。然后利用Java的反射實例化。

在沒有Spring之前我們也是這么做的,僅僅是Spring的IoC更加強大完好。

?

有利就有斃,IoC也有一定的弊端:

1、使用反射變成,在效率上有些損耗。

2、缺乏更加智能的IDE,寫XML中時,錯誤不easy暴露。推遲到執行期才干發現。

?

但相對于IoC提高的維護性和靈活性來說,這點缺點又顯得微不足道

?

?寫到最后,忽然想到《走遍美國》里。唱片公司制片在rebaca錄制完唱片后對她說的一句話:Don't call us,we'll call you

用這句話來形容IoC再合適只是。

總結

以上是生活随笔為你收集整理的Spring核心(ioc控制反转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。