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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring核心之IOC

發布時間:2025/3/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring核心之IOC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring IOC? ?控制反轉? ? 核心思想

了解IOC,首先需要了解DI? --- 軟件設計的重要思想? ? ? ? ? ? 依賴注入

什么事依賴注入呢?

例子:設計行李箱類

傳統寫法:首先設計輪子,根據輪子設計底盤,根據底盤設計箱體。OK,設計完成。

? ? ? ? ? ? 換成java中類的描述:1.輪子類:Class Tire { int size;//輪子大小? ?Tire(){this.size = 20;}}? ?2.底盤類 : Class Botton {Tire tire;//輪子? ?Botton(){this.tire =?new? tire;}}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.箱體類:Class FrameWork{ Botton botton;//底盤? FramWork() {this.botton =?new? botton;}}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 生成一個行李箱:new FrameWork();

? ? ? ? ?上層建筑依賴下層建筑。每當需要設計一個新式的行李箱,則需要從輪子到箱體全部需要重新寫代碼,嚴重違反了代碼的可重用性;

DI寫法:首先設計箱體,根據箱體選擇底盤,根據底盤選擇輪子。OK,設計完成。

? ? ? ? ? ? 換成java中類的描述:1.輪子類:Class Tire { int size;//輪子大小? ?Tire(int size){this.size = size;}}? ?2.底盤類 : Class Botton {Tire tire;//輪子? ?Botton(Tire tire){this.tire =? tire;}}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.箱體類:Class FrameWork{ Botton botton;//底盤? FramWork(Botton botton) {this.botton = botton;}}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 生成一個行李箱:Tire tire = new Tire(20); Botton botton = new Botton(tire);FrameWork frameWork = new FrameWork(botton);

? ? ? ? 上層建筑控制下層建筑。將輪子,底盤類,箱體類設計成接口設計,每次只需在main方法中注入即可,不需要修改過多的代碼量,需要什么樣的輪子全部繼承輪子接口。

依賴注入減少了我們重復修改源代碼。

依賴注入的幾種方式:setter方法,Construsctor構造方法注入(上面實現的那種)

當然我們的IOC可不止這點技能,我們的IOC作為容器的存在,當然是海納百川

1.bean工廠,將各種bean對象注入到IOC容器中統一維護,做到隨用隨取。隱藏了各種注入細節。

IOC容器運行機制:

?

?

實例化bean運用到了java的反射機制

?

IOC容器支持的功能:依賴注入,依賴檢查,自動裝配,支持集合,指定初始化的銷毀方法(這就和spring的另一個基礎核心內容AOP相關),支持回調方法。

?

轉載于:https://www.cnblogs.com/ZTYCandy/p/11438534.html

總結

以上是生活随笔為你收集整理的spring核心之IOC的全部內容,希望文章能夠幫你解決所遇到的問題。

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