日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Spring中IOC和AOP的詳細解釋

 觀審美2 2016-09-02

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

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

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

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

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

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

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

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

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

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多