五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

01Spring Framework 概述

2021-03-25 16:22 作者:關(guān)阿姨的Java日記  | 我要投稿

今日內(nèi)容

  • Spring介紹

  • Spring核心內(nèi)容 IOC和AOP

  • Spring IOC/DI 詳細(xì)理解

說(shuō)明

以下的Spring指的都是Spring社區(qū)中提供的一個(gè)核心解決方案,也就是Spring Framework 框架

一.Spring ?介紹

1.1 概述

Spring是一個(gè)輕量級(jí)的Java開(kāi)發(fā)框架。使用框架的主要優(yōu)勢(shì)之一就是分層架構(gòu),方便解耦。Spring的核心是IOC(依賴注入控制反轉(zhuǎn))和AOP(面向切面)。同時(shí)Spring可以整合其他框架

1.2 Spring 分層架構(gòu)

Spring框架是一個(gè)分層架構(gòu),由很多模塊組成,允許應(yīng)用程序自由選擇和組裝相應(yīng)的功能模塊,模塊圖如下:

二. Spring核心內(nèi)容 IOC和AOP

2.1 IOC

  • IOC:控制反轉(zhuǎn)(Inversion of Control):

底層采用了工廠模式。Spring容器就像是一個(gè)工廠,管理著對(duì)象的生命周期。開(kāi)發(fā)同學(xué)只需要在Spring的配置文件中配置對(duì)應(yīng)的bean以及設(shè)置相應(yīng)的屬性,讓Spring容器來(lái)生成類的實(shí)例對(duì)象以及管理對(duì)象

就像生活中的工廠車(chē)間一樣,我們會(huì)只需要在車(chē)間控制面板輸入?yún)?shù),之后物品的生產(chǎn)和加工就交給工廠來(lái)自動(dòng)加工。我們將產(chǎn)品的加工交給了工廠來(lái)進(jìn)行處理

  • DI:依賴注入(Dependency Injection):

利用了 java 反射,Spring容器啟動(dòng)的時(shí)候,會(huì)把配置文件中配置的bean都初始化好。然后在你調(diào)用的使用就會(huì)把已經(jīng)初始化好的bean分配給你需要調(diào)用的這些調(diào)用方。

就像工廠中的控制面板,我們輸入?yún)?shù),工廠就根據(jù)參數(shù)來(lái)進(jìn)行處理

2.2 AOP

AOP(面向切面編程)可以說(shuō)是對(duì)OOP(面向?qū)ο缶幊蹋┑难a(bǔ)充。OOP的三大特征是封裝,繼承,多態(tài)建立了一種層次結(jié)構(gòu),這種層次結(jié)構(gòu)允許進(jìn)行縱向開(kāi)發(fā),但是不適合橫向開(kāi)發(fā)。例如:日志功能。日志功能一般橫向地散布在所有對(duì)象層次中,而它與對(duì)象的核心功能毫無(wú)關(guān)系。這種散布在各處的無(wú)關(guān)的代碼我們稱為是“橫切”代碼。

AOP利用的是一種“橫切”技術(shù)。他能將影響多個(gè)類的的公共行為封裝到一個(gè)可重用的模塊中。從而減少代碼量。例如:將日志相關(guān)的代碼封裝成一個(gè)類。

AOP說(shuō)白了就是說(shuō)將那些與業(yè)務(wù)無(wú)關(guān)但是也卻被各業(yè)務(wù)模塊所共同調(diào)用的邏輯封裝起來(lái)。例如權(quán)限認(rèn)證,日志,事務(wù)等。這樣便于減少系統(tǒng)的重復(fù)代碼,降低模塊之間的耦合度,便于維護(hù)與管理。

三. Spring IOC/DI 詳細(xì)理解

說(shuō)白了就是將Bean的生命周期,如對(duì)象的創(chuàng)建,管理,銷毀交給Spring容器來(lái)進(jìn)行管理。開(kāi)發(fā)同學(xué)只需將要?jiǎng)?chuàng)建的Bean在文件中進(jìn)行配置。Spring容器啟動(dòng)后就會(huì)創(chuàng)建你所配置的這些Bean。在容器運(yùn)行期間動(dòng)態(tài)的返回調(diào)用者所需要的Bean。Spring容器在創(chuàng)建對(duì)象的時(shí)候使用的是工廠模式程序在運(yùn)行期間動(dòng)態(tài)獲取Bean是采用反射方式

3.1 IOC/DI

  • IOC — Inversion Of Control(控制反轉(zhuǎn))

  • DI — Dependency Injection(依賴注入)

這兩個(gè)是一種設(shè)計(jì)思想,IOC 與 DI 是同一個(gè)概念的不同角度描述

3.1.1 IOC 何為控制反轉(zhuǎn)

例如,你想買(mǎi)房,你的自己找房源,找房東啥的都是自己去做。現(xiàn)在出現(xiàn)了一個(gè)房屋中介它可以完成找房的全部過(guò)程,然后向你推薦,你只需獲取結(jié)果就行,這樣就把找房的過(guò)程交給了第三方,這就是控制反轉(zhuǎn)

?

在 Java 開(kāi)發(fā)中,IOC 意味著你把設(shè)計(jì)好的對(duì)象交給 Spring 容器控制,而不是自己在對(duì)象內(nèi)部控制

?

理解IOC的關(guān)鍵就是兩點(diǎn):

  • 誰(shuí)控制誰(shuí)、控制什么:Spirng 容器控制了對(duì)象生命周期(何時(shí)創(chuàng)建,合適銷毀等)。控制了外部資源的獲取。如其他對(duì)象等

  • 為何是反轉(zhuǎn)、反轉(zhuǎn)了什么:Spring 容器幫我們查找需要哪些依賴的對(duì)象,我們只是被動(dòng)的接受依賴的對(duì)象。反轉(zhuǎn)了依賴對(duì)象的獲取,我們由主動(dòng)獲取變?yōu)楸粍?dòng)獲取。這里的 “我們” 指的是當(dāng)前對(duì)象,“依賴的對(duì)象”指的是當(dāng)前對(duì)象所需使用的對(duì)象

3.1.2 DI 何為依賴

理解 DI 的兩個(gè)關(guān)鍵點(diǎn)是:

  • 誰(shuí)依賴誰(shuí),為什么需要依賴 :應(yīng)用程序依賴 Spring 容器;應(yīng)用程序需要 Spring 容器來(lái)為對(duì)象提供所需的外部資源。如其他對(duì)象

  • 誰(shuí)注入誰(shuí),注入什么:Spring 容器為應(yīng)用程序進(jìn)行注入;注入應(yīng)用程序所依賴的對(duì)象

3.2 IOC/DI 思想

IOC/DI 很好的體現(xiàn)了 “ 別找我們,我們找你 ”的思想。即由 Spring 容器來(lái)管理對(duì)象 并且 Spring 容器幫助對(duì)象找到要依賴的對(duì)象。而不是由對(duì)象主動(dòng)去找

四. IOC/DI 總結(jié)

IOC:所有的類都會(huì)在 Spring 容器中注冊(cè),當(dāng)一個(gè)對(duì)象需要某些對(duì)象的時(shí)候,Spring 容器在運(yùn)行的時(shí)候就會(huì)把這些對(duì)象給這個(gè)對(duì)象。對(duì)象的生命周期由 Spring 容器進(jìn)行管理。IOC 是通過(guò) 工廠模式 和 代理某事 所實(shí)現(xiàn)的

?

DI:DI 的重點(diǎn)是在程序運(yùn)行期間,動(dòng)態(tài)的向某個(gè)對(duì)象提供它所依賴的其他對(duì)象。DI 的實(shí)現(xiàn)方式是通過(guò) Java 反射實(shí)現(xiàn)的

?

控制的什么被反轉(zhuǎn)了:獲取依賴對(duì)象的方式反轉(zhuǎn)了!?。?/span>

五. Spring 家族

Spring發(fā)展至今,家族成員已經(jīng)非常龐大,以下僅列出一些常見(jiàn)的家族項(xiàng)目。更多家族成員請(qǐng)?jiān)L問(wèn):http://spring.io/projects

?

關(guān)注點(diǎn)贊,學(xué)習(xí)編程不迷路,筆芯?~


01Spring Framework 概述的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
新营市| 苍山县| 清涧县| 革吉县| 柳林县| 堆龙德庆县| 贵阳市| 丽江市| 荣昌县| 兴山县| 连城县| 夏邑县| 任丘市| 漳平市| 廊坊市| 通榆县| 江永县| 栾川县| 镶黄旗| 东兴市| 潼南县| 堆龙德庆县| 新和县| 九江县| 黎川县| 聂拉木县| 盐津县| 宿州市| 九龙县| 乌兰浩特市| 台南市| 盐亭县| 安多县| 民县| 于都县| 方城县| 长岛县| 黄梅县| 常山县| 江永县| 岚皋县|