一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Spring中IOC和AOP的詳細(xì)解釋

 觀審美2 2016-09-02

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

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

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

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

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

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

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

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

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

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

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    久久人人爽人人爽大片av| 不卡在线播放一区二区三区| 精品国产成人av一区二区三区| 国产欧美高清精品一区| 少妇高潮呻吟浪语91| 激情偷拍一区二区三区视频| 老司机精品国产在线视频| 欧美国产在线观看精品| 欧美日韩亚洲精品内裤| 久久精品偷拍视频观看| 亚洲欧洲一区二区中文字幕| 99久久精品免费精品国产| 人妻巨大乳一二三区麻豆| 欧美日韩校园春色激情偷拍| 欧美日韩无卡一区二区| 日本少妇中文字幕不卡视频| 亚洲中文字幕免费人妻| 欧美精品一区二区三区白虎| 日韩国产传媒在线精品| 亚洲国产香蕉视频在线观看| 亚洲精品一区二区三区日韩| 精品国产丝袜一区二区| 免费在线播放不卡视频| 亚洲男人天堂成人在线视频| 国产又大又硬又粗又黄| 欧美日韩高清不卡在线播放| 亚洲av日韩一区二区三区四区 | 日本加勒比在线观看不卡| 中国美女偷拍福利视频| 亚洲av日韩一区二区三区四区| 一级欧美一级欧美在线播| 久久女同精品一区二区| 一区二区日本一区二区欧美| 激情少妇一区二区三区| 97人妻精品一区二区三区免| 成人欧美一区二区三区视频| 欧美美女视频在线免费看| 国产一区二区三区丝袜不卡| 欧美精品久久男人的天堂| 国产精品成人免费精品自在线观看| 国产女性精品一区二区三区 |