国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring框架之我見(jiàn)(三)——IOC、AOP

khs1994 / 2019人閱讀

摘要:模塊負(fù)責(zé)的所有面向切面的功能。總結(jié)的統(tǒng)一管理,降低了對(duì)象之間的耦合對(duì)主流的框架提供了很好的集成支持提供眾多組件,事務(wù)管理,等具有高度可開(kāi)放性,開(kāi)發(fā)者可以自由選擇部分或全部主要使用工廠模式和代理模式。

聊完了Spring框架中最重要的兩種設(shè)計(jì)模式,我們來(lái)看一下Spring框架的模塊和結(jié)構(gòu)圖。
Spring框架的結(jié)構(gòu)

下圖是Spring官方給出的Spring框架的結(jié)構(gòu)圖。

從圖中我們可以看到Spring的四大部分:核心容器(container)、AOP模塊、Web模塊、Data模塊。

首先看核心容器,從核心倆字我們可以看出,這是Spring最重要的部分。主要的功能是實(shí)現(xiàn)了控制反轉(zhuǎn)(IOC)與依賴注入(DI)、Bean配置、加載以及生命周期的管理。

AOP模塊:負(fù)責(zé)Spring的所有AOP(面向切面)的功能。

Web模塊:擴(kuò)展了Spring的Web功能。使其符合MVC的設(shè)計(jì)規(guī)范,最重要的是提供了Spring MVC的容器。

Data模塊:提供了一些數(shù)據(jù)相關(guān)的組件:包括JDBC、orm(對(duì)象關(guān)系映射)、事務(wù)操作、oxm(對(duì)象xml映射)、Jms(Java消息服務(wù))。

我們可以看到Spring給我們提供的模塊相當(dāng)?shù)呢S富,無(wú)論是持久層業(yè)務(wù)層還是控制層都有所涉及。

Spring幾乎包攬除了業(yè)務(wù)邏輯之外的的所有工作,包括日志管理、事務(wù)管理、Bean管理、安全管理等。

Spring致力于全套的Java問(wèn)題的解決方案,在所有的Java可以涉足的領(lǐng)域,Spring都會(huì)提供相應(yīng)的支持。(即使沒(méi)有支持,也會(huì)讓我們?nèi)フ希?/p>

與第三方框架的整合。在我的理解中Spring框架就像一個(gè)插線板,而第三方框架就相當(dāng)于插頭,可以輕易地與它組合在一起。需要的時(shí)候就插上去,不需要的時(shí)候就拔掉,相當(dāng)?shù)姆奖恪?/p>

既然Spring如此的方便,那么它又是如何做到的呢?

很簡(jiǎn)單,通過(guò)兩點(diǎn):

控制反轉(zhuǎn)(IOC)

面向切面編程(AOP)

控制反轉(zhuǎn)(IOC)/依賴注入(DI)

既然說(shuō)到控制反轉(zhuǎn),那么我們不禁要問(wèn)什么控制被反轉(zhuǎn)了?
答案是:我們對(duì)對(duì)象的控制權(quán)被反轉(zhuǎn)了。我們將對(duì)象的控制交給了Spring的容器

那么問(wèn)題又來(lái)了,什么是Spring的容器?
簡(jiǎn)單的說(shuō),Spring容器就是一個(gè)超級(jí)大工廠,負(fù)責(zé)創(chuàng)建、管理所有的Java對(duì)象,這些Java對(duì)象被稱為Bean。Spring容器管理著容器中Bean之間的依賴關(guān)系,Spring使用一種被稱為“依賴注入”的方式來(lái)管理Bean之間的依賴關(guān)系。

什么又是依賴注入呢?
依賴注入(DI)就是控制反轉(zhuǎn)的一種實(shí)現(xiàn)形式,Spring容器也是通過(guò)這種形式管理Bean的。

Spring容器如何做到替你管理這些bean的呢?
工廠模式。

Spring框架費(fèi)了九牛二虎之力創(chuàng)建一個(gè)Spring容器去幫我們管理這些Bean又有什么好處呢?
其實(shí)和工廠模式的好處差不多:

解除硬編碼耦合,利于項(xiàng)目升級(jí)和維護(hù);

簡(jiǎn)化了對(duì)象的管理,使我們更加專注于業(yè)務(wù)操作;

聊完了控制反轉(zhuǎn)我們?cè)賮?lái)看看Spring框架的另一項(xiàng)關(guān)鍵技術(shù)AOP。

面向切面編程(AOP)

什么是面向切面編程?

面向切面編程:在運(yùn)行時(shí),動(dòng)態(tài)地將代碼切入到類的指定方法、指定位置上的編程思想就是面向切面的編程。

這句話讀完估計(jì)跟沒(méi)讀沒(méi)什么區(qū)別,還是沒(méi)懂。下面我們來(lái)看一張圖:

從圖中我們可以看出:我們每寫一個(gè)業(yè)務(wù)功能,都需要判斷權(quán)限、記錄日志、提交事務(wù)、這些邏輯是不是都是重復(fù)的呀,這相當(dāng)于什么呢?相當(dāng)于我們前面說(shuō)的臟活累活,這都不是我們的重點(diǎn),我們的重點(diǎn)是業(yè)務(wù)邏輯,就是說(shuō)我們需要把整體框架搭好,實(shí)際編寫的時(shí)候只需要將我們的業(yè)務(wù)代碼切入到框架之中,就行了。

原理:代理模式。

為什么需要AOP?
AOP專門用于處理系統(tǒng)中分布于各個(gè)模塊或者不同方法中的交叉關(guān)注點(diǎn)的問(wèn)題。比如:在程序中,我們常常需要處理一些具有橫切性質(zhì)的系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全檢查、緩存、對(duì)象池管理等,AOP是一種非常常用的解決方案。

面向切面編程對(duì)我們來(lái)說(shuō)有什么好處?

減少重復(fù);

專注業(yè)務(wù);

注意:面向切面編程只是面向?qū)ο缶幊痰囊环N補(bǔ)充。

講了這么多我們來(lái)對(duì)Spring框架做一個(gè)總結(jié)。

Spring 總結(jié)

Bean的統(tǒng)一管理,降低了對(duì)象之間的耦合

對(duì)主流的框架提供了很好的集成支持

提供眾多組件,事務(wù)管理,JDBC等

具有高度可開(kāi)放性,開(kāi)發(fā)者可以自由選擇Spring部分或全部

主要使用工廠模式和代理模式。

低侵入,代碼污染極低。(我們不會(huì)因?yàn)橛昧藄pring而影響我們的正常的業(yè)務(wù)邏輯)

AOP的很好支持,方便面向切面編程(AspectJ)。

下一節(jié),我們將討論Spring框架在WEB開(kāi)發(fā)的應(yīng)用Spring MVC。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/68181.html

相關(guān)文章

  • Spring框架我見(jiàn)(四)——Spring MVC

    摘要:是結(jié)構(gòu)在框架中的一種表現(xiàn)形式。這句話聽(tīng)起來(lái)有點(diǎn)繞,我們可以看一下下面這張圖,大家可以吧容器中的理解為全局變量,吧容器中的理解為局部變量。在方法體中可以訪問(wèn)局部變量和全局變量,但是在方法外,就只能訪問(wèn)全局變量,是不能訪問(wèn)局部變量的。 聊完了Spring,我們來(lái)看看Spring在web方面的應(yīng)用Spring MVC。 MVC 首先我們來(lái)看什么是mvc? 大家知道在jsp里面也是可以寫jav...

    shiina 評(píng)論0 收藏0
  • Spring框架我見(jiàn)(五)——Spring Boot

    摘要:通過(guò)我們可以更輕松地入門,更簡(jiǎn)單的使用的框架。團(tuán)隊(duì)為了擺脫框架中各類繁復(fù)紛雜的配置,使用約定優(yōu)于配置的思想,在基礎(chǔ)上整合了大量常用的第三方庫(kù)的開(kāi)發(fā)框架。這里還要說(shuō)的一點(diǎn),的出現(xiàn)并不是單純的為了簡(jiǎn)化開(kāi)發(fā),更是為做鋪墊。 說(shuō)完了Spring 我們來(lái)聊聊Spring的進(jìn)階版Spring Boot,如果你還不知道Spring Boot,那希望這篇文章能夠?yàn)槟阒该鞣较颉?Spring Boot ...

    張巨偉 評(píng)論0 收藏0
  • Spring框架我見(jiàn)(二)——代理模式

    摘要:聊完了工廠模式,下面我們來(lái)說(shuō)框架中的另一個(gè)核心設(shè)計(jì)模式代理模式。這里的外賣小哥就相當(dāng)于是我們的代理。主要分為代理和代理。 聊完了工廠模式,下面我們來(lái)說(shuō)Spring框架中的另一個(gè)核心設(shè)計(jì)模式——代理模式(Proxy Pattern)。 代理模式 大家可以先不用看概念,先舉個(gè)吃飯的例子:比如說(shuō)我們想吃飯,我們可以選擇自己做飯吃、去飯店吃、叫外賣吃。如果我們選擇自己做著吃,我們就需要去買菜、...

    oneasp 評(píng)論0 收藏0
  • Spring框架我見(jiàn)(一)——工廠模式

    摘要:相對(duì)于工廠模式,抽象工廠模式生產(chǎn)的對(duì)象更加具體,也更加豐富,但相對(duì)編碼也更加復(fù)雜。具體的抽象工廠模式的實(shí)現(xiàn)大家可以參考菜鳥(niǎo)教程。知道了工廠模式和抽象工廠模式的區(qū)別,請(qǐng)大家使用的時(shí)候應(yīng)該根據(jù)具體的情況進(jìn)行選擇。 大家好,今天給大家分享一些Spring的學(xué)習(xí)心得,在講Spring之前,先和大家分享Spring中核心的設(shè)計(jì)模式。 工廠模式 在聊概念之前我先問(wèn)問(wèn)大家:什么是工廠? 這個(gè)很簡(jiǎn)單,...

    venmos 評(píng)論0 收藏0
  • Spring框架我見(jiàn)(六)——Spring Cloud

    摘要:系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。傳統(tǒng)架構(gòu)升級(jí)困難。新的輕量級(jí)協(xié)議容器化的出現(xiàn)。熔斷處理在微服務(wù)出現(xiàn)問(wèn)題時(shí)防止出現(xiàn)雪崩效應(yīng)。 聊完Spring Boot,我們來(lái)看看Spring Boot最重要的一方面的應(yīng)用——Spring Cloud。 Spring Cloud 再聊SpringCloud之前我們先聊聊微服務(wù)。 ...

    alighters 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<