亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Spring框架中IOC的實現(xiàn)

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

        劉雙

        摘要

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

        【關(guān)鍵詞】控制反轉(zhuǎn) IOC Spring

        1 IoC模式類型

        1.1 Method注入方式

        當(dāng)調(diào)用的方法需要依賴某些對象時,那么該方法的參數(shù)就是需要傳遞的對象。在這種方式中,被依賴的對象和調(diào)用者無法建立組合關(guān)系,調(diào)用者僅需要在注入被依賴對象的方法中,使用被依賴對象進(jìn)行特定的操作即可。

        1.2 接口注入方式

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

        1.3 設(shè)值注入方式

        setter方法可以很輕易的對被依賴對象進(jìn)行設(shè)置。在調(diào)用這類中,會有一個和被依賴對象有相同類型的成員變量,使用設(shè)值注入可以將被依賴的setter方法傳遞到IOC容器當(dāng)中,同時將被依賴對象傳給相應(yīng)的成員變量。

        1.4 構(gòu)造注入方式

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

        2 Spring基礎(chǔ)知識

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

        其中,ApplicationContext接口是BeanFactory接口的子接口,ApplicationContext對BeanFactory的功能進(jìn)行了擴(kuò)展,其中包括:預(yù)先初始化單例類,增加了事件機(jī)制等。

        3 Spring實現(xiàn)IoC

        Spring支持設(shè)值注入和構(gòu)造注入兩種方式的IoC。在Spring中配置IoC有兩種方式:

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

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

        使用配置文件方式,需要在Spring的配置文件內(nèi)配置Bean的信息,可將id來作為Bean唯一的標(biāo)識,Bean的具體實現(xiàn)類可以使用class來指定,下文會有詳細(xì)介紹。

        4 Spring中IOC的具體實現(xiàn)

        下面通過配置文件實現(xiàn)設(shè)值注入為例進(jìn)行介紹。

        4.1 創(chuàng)建模型

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

        public class System{//系統(tǒng)類

        private String name;

        private Component component;//依賴組件

        //get/set方法略

        }

        public class Component{//組件類

        private String name;

        //get/set方法略

        }

        4.2 設(shè)值注入

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

        property有如下屬性:

        name:對應(yīng)類的某一個setter方法;

        value:驅(qū)動程序?qū)⒋藢傩缘忍栍疫叺淖置嬷祩魅雜etter方法中;

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

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

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

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

        5 結(jié)論

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

        參考文獻(xiàn)

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

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

        国产剧情亚洲一区二区三区| 美女高潮无遮挡免费视频| 亚洲精品中国国产嫩草影院美女| 亚洲香蕉av一区二区蜜桃 | 久久久久久久国产精品电影| 亚洲五码av在线观看| 亚洲欧洲免费无码| 欧美aaaaaa级午夜福利视频 | 日本视频在线观看一区二区| 精品一区二区三区免费视频| 亚洲精品国产精品国自产观看| 亚洲成AV人久久| 国产91会所女技师在线观看| 精品久久久久久久久午夜福利 | 成人欧美日韩一区二区三区| 免费的成年私人影院网站| 日本肥老熟妇在线观看| 亚洲国产av一区二区四季| 午夜福利av无码一区二区| 欧美激情区| 日本精品熟妇一区二区三区| 久久99热国产精品综合| 精品国产人成亚洲区| 国产精品视频免费的| 精品国产免费一区二区久久| 人妻洗澡被强公日日澡电影 | 成年女人免费视频播放体验区| 三级网址在线| 国产目拍亚洲精品二区| 在线观看午夜视频一区二区 | 一区一级三级在线观看 | 久久久精品一区aaa片| 69av视频在线观看| 蜜桃色av一区二区三区麻豆| 日本真人添下面视频免费| 国产精品jizz视频| 久久er这里都是精品23| 亚洲av老熟女一区二区三区| 国产精品无码无片在线观看3d| 日日摸日日碰人妻无码老牲| 国产精品一区二区蜜臀av|