999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Spring框架中IOC的實現

2018-02-28 11:19:18劉雙
電子技術與軟件工程 2018年21期

劉雙

摘要

傳統程序設計中,程序需要經過手動的方式來獲取被依賴的對象,而spring采用控制反轉模式,該模式使用容器來自動獲取,完美地克服了傳統模式的弊端。本文對Spring框架中10C模式的具體實現進行研究與分析。

【關鍵詞】控制反轉 IOC Spring

1 IoC模式類型

1.1 Method注入方式

當調用的方法需要依賴某些對象時,那么該方法的參數就是需要傳遞的對象。在這種方式中,被依賴的對象和調用者無法建立組合關系,調用者僅需要在注入被依賴對象的方法中,使用被依賴對象進行特定的操作即可。

1.2 接口注入方式

聲明依賴的方式有很多,如常用的Serviceable,Configurable等接口。接口中往往是一些抽象方法,調用者類需要實現接口中的抽象方法,在抽象方法中編寫被依賴對象被注入的方式。

1.3 設值注入方式

setter方法可以很輕易的對被依賴對象進行設置。在調用這類中,會有一個和被依賴對象有相同類型的成員變量,使用設值注入可以將被依賴的setter方法傳遞到IOC容器當中,同時將被依賴對象傳給相應的成員變量。

1.4 構造注入方式

使用構造器來聲明依賴。在調用者類中,會實現一個帶有被依賴對象為形參的構造器,IoC容器在初始化該調用者對象前,首先初始化被依賴對象。初始完成后,將調用者對象相應的構造器注入被依賴對象,通過構造函數將被依賴對象賦值給指定的成員變量。

2 Spring基礎知識

Spring容器可用于在spring中實現控制反轉,也被稱為依賴注入。在spring中所有java對象的創建和管理都是由spring對象實現,其中所有的Java對象都被叫做Bean。開發者需要使用配置文件或注解向Spring容器注冊Bean。Spring容器有兩種:BeanFactory和ApplicationContext。

其中,ApplicationContext接口是BeanFactory接口的子接口,ApplicationContext對BeanFactory的功能進行了擴展,其中包括:預先初始化單例類,增加了事件機制等。

3 Spring實現IoC

Spring支持設值注入和構造注入兩種方式的IoC。在Spring中配置IoC有兩種方式:

(1)使用配置文件方式,開發者需要在配置文件中配置相應的Bean,在這種情況下當Spring容器在加載時,便會讀取配置文件并將配置文件中的Bean實例化為Java對象;

(2)使用@Autowired注解,該注解按照byType的方式進行匹配,依賴注入的方式與配置文件相似,本文不做詳細介紹。

使用配置文件方式,需要在Spring的配置文件內配置Bean的信息,可將id來作為Bean唯一的標識,Bean的具體實現類可以使用class來指定,下文會有詳細介紹。

4 Spring中IOC的具體實現

下面通過配置文件實現設值注入為例進行介紹。

4.1 創建模型

假設模型:系統類(system),以及系統要依賴的組件類(Component),如下:

public class System{//系統類

private String name;

private Component component;//依賴組件

//get/set方法略

}

public class Component{//組件類

private String name;

//get/set方法略

}

4.2 設值注入

Spring容器使用成員變量的setter方法來注入被依賴對象,即設值注入。在配置文件中需要為Bean元素配置property元素,每一個property驅動Spring容器執行Bean的setter方法一次。

property有如下屬性:

name:對應類的某一個setter方法;

value:驅動程序將此屬性等號右邊的字面值傳入setter方法中;

ref:驅動程序查找Spring容器中id與此屬性等號右邊字符串相同的Bean。

以下是配置文件的具體代碼:

Spring容器在啟動時,首先讀取配置文件,檢查是否有Bean定義。程序讀取id為system的Bean后,對實現類System類進行檢測,并且通過設值注入為該system Bean注入兩個屬性。

程序根據反射機制獲得相應類的對象,調用類對象的newlnstanceo方法獲取System類的對象。由property屬性的name參數解析到,程序需要調用setName方法來為System對象注入windows值,同時為component參數注入此配置文件中的另一個Bean,之后實例化component Bean。實例化完成后,通過setcomponent()將component對象注入System對象,到此整個system Bean的實例化工作便完成了,系統以此Bean的配置id作為鍵,將其放入Spring容器中,等待程序的獲取。

5 結論

綜上,大致介紹了IoC模式的四種實現方式,以及Spring配置文件的配置信息,同時也了解了Spring中IoC的兩種實現方式,并以setter(設值)注入為例,介紹了具體的實現過程,對于IOC的整體研究有一定的價值。

參考文獻

[1]顧悅,王建軍.Spring ActionScript中IoC容器注入機制研究[J].電腦知識與技術,2010,06(28):8033-8034.

[2]薄奇,許林英.Spring框架中IoC的實現[J].微處理機,2008,29(01):147-149.

主站蜘蛛池模板: 国产精品55夜色66夜色| 亚洲av无码人妻| 久久窝窝国产精品午夜看片| 亚洲天天更新| 国产成人久久777777| 毛片在线看网站| 999精品视频在线| 亚洲国产精品无码AV| 国产精品午夜福利麻豆| 伊人天堂网| 日韩免费视频播播| 91青青在线视频| 91在线视频福利| 国产精品天干天干在线观看| 中文字幕在线不卡视频| 97久久免费视频| 色综合天天综合| 国产人免费人成免费视频| 麻豆国产精品视频| 久久综合色视频| 亚洲综合色婷婷中文字幕| 四虎国产精品永久一区| 国产精品亚欧美一区二区| a天堂视频| 欧美激情一区二区三区成人| 日韩黄色精品| 99在线观看视频免费| 欧美日韩成人在线观看| 又大又硬又爽免费视频| 极品国产在线| 亚洲香蕉久久| 久久精品91麻豆| 就去吻亚洲精品国产欧美| 波多野结衣国产精品| 2020极品精品国产| 亚洲福利视频网址| 中文字幕亚洲专区第19页| 尤物成AV人片在线观看| 日韩精品无码免费一区二区三区| 亚洲视频三级| 九九热精品视频在线| 国产91线观看| 在线欧美日韩国产| 亚洲av无码成人专区| 精品超清无码视频在线观看| 97se亚洲综合在线天天| 久久精品无码一区二区国产区| 视频在线观看一区二区| 久久婷婷六月| 国产国产人成免费视频77777 | 亚洲免费毛片| 久久青草精品一区二区三区| 在线观看免费人成视频色快速| 99人妻碰碰碰久久久久禁片| 国产精品成人不卡在线观看| 三级国产在线观看| 在线视频亚洲色图| 啊嗯不日本网站| 热99re99首页精品亚洲五月天| 欧美成人第一页| 日本在线免费网站| 综合成人国产| 国产偷国产偷在线高清| 国产午夜无码专区喷水| 男人的天堂久久精品激情| 国产精品视频白浆免费视频| 欧美综合区自拍亚洲综合绿色| 美女一级毛片无遮挡内谢| 中文字幕伦视频| 欧美色亚洲| 国产AV毛片| 欧美午夜理伦三级在线观看| 中国一级毛片免费观看| 日本三级欧美三级| 91精品国产无线乱码在线 | av在线手机播放| 亚洲第一黄色网址| 制服丝袜在线视频香蕉| 91在线一9|永久视频在线| 国产视频大全| 国产97公开成人免费视频| 久久精品国产999大香线焦|