2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

Spring中IOC和AOP的詳細解釋

 觀審美2 2016-09-02

我們是在使用Spring框架的過程中,其實就是為了使用IOC,依賴注入,和AOP,面向切面編程,這兩個是Spring的靈魂。

主要用到的設(shè)計模式有工廠模式和代理模式。

IOC就是典型的工廠模式,通過sessionfactory去注入實例。

AOP就是典型的代理模式的體現(xiàn)。

代理模式是常用的java設(shè)計模式,他的特征是代理類與委托類有同樣的接口,代理類主要負責為委托類預處理消息、過濾消息、把消息轉(zhuǎn)發(fā)給委托類,以及事后處理消息等。代理類與委托類之間通常會存在關(guān)聯(lián)關(guān)系,一個代理類的對象與一個委托類的對象關(guān)聯(lián),代理類的對象本身并不真正實現(xiàn)服務,而是通過調(diào)用委托類的對象的相關(guān)方法,來提供特定的服務。 

spring的IoC容器是spring的核心,spring AOP是spring框架的重要組成部分。

在傳統(tǒng)的程序設(shè)計中,當調(diào)用者需要被調(diào)用者的協(xié)助時,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實例。但在spring里創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來完成,因此控制反轉(zhuǎn)(IoC);創(chuàng)建被調(diào)用者實例的工作通常由spring容器來完成,然后注入調(diào)用者,因此也被稱為依賴注入(DI), 依賴注入和控制反轉(zhuǎn)是同一個概念 。

面向方面編程(AOP)是以另一個角度來考慮程序結(jié)構(gòu) ,通過分析程序結(jié)構(gòu)的關(guān)注點來完善面向?qū)ο缶幊蹋∣OP)。OOP將應用程序分解成各個層次的對象,而AOP將程序分解成多個切面。spring AOP 只實現(xiàn)了方法級別的連接點,在J2EE應用中,AOP攔截到方法級別的操作就已經(jīng)足夠。在spring中,未來使IoC方便地使用健壯、靈活的企業(yè)服務,需要利用spring AOP實現(xiàn)為IoC和企業(yè)服務之間建立聯(lián)系。
IOC:控制反轉(zhuǎn)也叫依賴注入。利用了工廠模式
將對象交給容器管理,你只需要在spring配置文件總配置相應的bean,以及設(shè)置相關(guān)的屬性,讓spring容器來生成類的實例對象以及管理對象。在spring容器啟動的時候,spring會把你在配置文件中配置的bean都初始化好,然后在你需要調(diào)用的時候,就把它已經(jīng)初始化好的那些bean分配給你需要調(diào)用這些bean的類(假設(shè)這個類名是A),分配的方法就是調(diào)用A的setter方法來注入,而不需要你在A里面new這些bean了。
注意:面試的時候,如果有條件,畫圖,這樣更加顯得你懂了.

AOP:面向切面編程。(Aspect-Oriented Programming)
AOP可以說是對OOP的補充和完善。OOP引入封裝、繼承和多態(tài)性等概念來建立一種對象層次結(jié)構(gòu),用以模擬公共行為的一個集合。當我們需要為分散的對象引入公共行為的時候,OOP則顯得無能為力。也就是說,OOP允許你定義從上到下的關(guān)系,但并不適合定義從左到右的關(guān)系。例如日志功能。日志代碼往往水平地散布在所有對象層次中,而與它所散布到的對象的核心功能毫無關(guān)系。在OOP設(shè)計中,它導致了大量代碼的重復,而不利于各個模塊的重用。
將程序中的交叉業(yè)務邏輯(比如安全,日志,事務等),封裝成一個切面,然后注入到目標對象(具體業(yè)務邏輯)中去。

實現(xiàn)AOP的技術(shù),主要分為兩大類:一是采用動態(tài)代理技術(shù),利用截取消息的方式,對該消息進行裝飾,以取代原有對象行為的執(zhí)行;二是采用靜態(tài)織入的方式,引入特定的語法創(chuàng)建“方面”,從而使得編譯器可以在編譯期間織入有關(guān)“方面”的代碼.

簡單點解釋,比方說你想在你的biz層所有類中都加上一個打印‘你好’的功能,這時就可以用aop思想來做.你先寫個類寫個類方法,方法經(jīng)實現(xiàn)打印‘你好’,然后Ioc這個類 ref=“biz.*”讓每個類都注入即可實現(xiàn)。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多