乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       觀審美2 2016-09-02

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

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

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

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

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

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

      在傳統(tǒng)的程序設(shè)計(jì)中,當(dāng)調(diào)用者需要被調(diào)用者的協(xié)助時,通常由調(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)是同一個概念 。

      面向方面編程(AOP)是以另一個角度來考慮程序結(jié)構(gòu) ,通過分析程序結(jié)構(gòu)的關(guān)注點(diǎn)來完善面向?qū)ο缶幊蹋∣OP)。OOP將應(yīng)用程序分解成各個層次的對象,而AOP將程序分解成多個切面。spring AOP 只實(shí)現(xiàn)了方法級別的連接點(diǎn),在J2EE應(yīng)用中,AOP攔截到方法級別的操作就已經(jīng)足夠。在spring中,未來使IoC方便地使用健壯、靈活的企業(yè)服務(wù),需要利用spring AOP實(shí)現(xiàn)為IoC和企業(yè)服務(wù)之間建立聯(lián)系。
      IOC:控制反轉(zhuǎn)也叫依賴注入。利用了工廠模式
      將對象交給容器管理,你只需要在spring配置文件總配置相應(yīng)的bean,以及設(shè)置相關(guān)的屬性,讓spring容器來生成類的實(shí)例對象以及管理對象。在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的補(bǔ)充和完善。OOP引入封裝、繼承和多態(tài)性等概念來建立一種對象層次結(jié)構(gòu),用以模擬公共行為的一個集合。當(dāng)我們需要為分散的對象引入公共行為的時候,OOP則顯得無能為力。也就是說,OOP允許你定義從上到下的關(guān)系,但并不適合定義從左到右的關(guān)系。例如日志功能。日志代碼往往水平地散布在所有對象層次中,而與它所散布到的對象的核心功能毫無關(guān)系。在OOP設(shè)計(jì)中,它導(dǎo)致了大量代碼的重復(fù),而不利于各個模塊的重用。
      將程序中的交叉業(yè)務(wù)邏輯(比如安全,日志,事務(wù)等),封裝成一個切面,然后注入到目標(biāo)對象(具體業(yè)務(wù)邏輯)中去。

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

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多