最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring相關(guān)知識(shí)點(diǎn)的總結(jié)與梳理

 更新時(shí)間:2019年02月11日 11:00:41   作者:邋遢的流浪劍客  
今天小編就為大家分享一篇關(guān)于Spring相關(guān)知識(shí)點(diǎn)的總結(jié)與梳理,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

1)、IOC:控制反轉(zhuǎn),某一接口具體實(shí)現(xiàn)類(lèi)的選擇控制權(quán)從調(diào)用類(lèi)中移除,轉(zhuǎn)交給第三方?jīng)Q定,即由Spring容器借由Bean配置來(lái)進(jìn)行控制

2)、DI:依賴(lài)注入,讓調(diào)用類(lèi)對(duì)某一接口實(shí)現(xiàn)類(lèi)的依賴(lài)關(guān)系由第三方(容器或協(xié)作類(lèi))注入,以移除調(diào)用類(lèi)對(duì)某一接口實(shí)現(xiàn)類(lèi)的依賴(lài)

3)、IOC主要分為3種類(lèi)型:構(gòu)造函數(shù)注入、屬性注入和接口注入。Spring支持構(gòu)造函數(shù)注入和屬性注入

4)、類(lèi)裝載器ClassLoader

類(lèi)裝載器就是尋找類(lèi)的字節(jié)碼文件并構(gòu)造出類(lèi)在JVM內(nèi)部表示對(duì)象的組件。在Java中,類(lèi)裝載器把一個(gè)類(lèi)裝入JVM中,需要經(jīng)過(guò)以下步驟:

(1)裝載:查找和導(dǎo)入Class文件

(2)鏈接:

A.校驗(yàn):檢查載入Class文件數(shù)據(jù)的正確性

B.準(zhǔn)備:給類(lèi)的靜態(tài)變量分配存儲(chǔ)空間

C.解析:對(duì)符號(hào)引用轉(zhuǎn)換成直接引用

(3)初始化:對(duì)類(lèi)的靜態(tài)變量、靜態(tài)代碼塊執(zhí)行初始化工作

類(lèi)裝載工作由ClassLoader及其子類(lèi)負(fù)責(zé)。ClassLoader負(fù)責(zé)在運(yùn)行時(shí)查找和裝入Class字節(jié)碼文件。JVM在運(yùn)行時(shí)會(huì)產(chǎn)生3個(gè)ClassLoader:跟裝載器、ExtClassLoader(擴(kuò)展類(lèi)裝載器)和AppClassLoader(應(yīng)用類(lèi)裝載器)。其中, 根裝載器不是ClassLoader的子類(lèi),它使用C++語(yǔ)言編寫(xiě),因而在Java中看不到它,根裝載器負(fù)責(zé)裝載JRE的核心類(lèi)庫(kù),如JRE目標(biāo)下的rt.jar、charsets.jar等。ExtClassLoader和AppClassLoader都是ClassLoader的子類(lèi),其中ExtClassLoader負(fù)責(zé)裝載JRE擴(kuò)展目錄ext中的JAR類(lèi)包;AppClassLoader負(fù)責(zé)裝載Classpath路徑下的類(lèi)包

跟裝載器是ExtClassLoader的父裝載器,ExtClassLoader是AppClassLoader的父裝載器。默認(rèn)情況下,使用AppClassLoader裝載應(yīng)用程序的類(lèi)

JVM裝載類(lèi)時(shí)使用全盤(pán)負(fù)責(zé)委托機(jī)制,全盤(pán)負(fù)責(zé)是指當(dāng)一個(gè)ClassLoader裝載一個(gè)類(lèi)時(shí),除非顯示地使用另一個(gè)ClassLoader,該類(lèi)所依賴(lài)及引用的類(lèi)也由這個(gè)ClassLoader載入;委托機(jī)制是指先委托父裝載器尋找目標(biāo)類(lèi),只有在找不到的情況下才從自己的類(lèi)路徑中查找并裝載目標(biāo)類(lèi)

5)、屬性注入要求Bean提供一個(gè)默認(rèn)的構(gòu)造函數(shù),并為需要注入的屬性提供對(duì)應(yīng)的Setter方法。Spring先調(diào)用Bean的默認(rèn)構(gòu)造函數(shù)實(shí)例化Bean對(duì)象,然后通過(guò)反射的方法調(diào)用Setter方法注入屬性值

6)、SprIng只會(huì)檢查Bean中是否有對(duì)應(yīng)的Setter方法,至于Bean中是否有對(duì)應(yīng)的屬性成員變更則不做要求

7)、JavaBean也允許以大寫(xiě)字母開(kāi)頭的屬性變量名,不過(guò)必須滿(mǎn)足變量的前兩個(gè)字母要么全部大寫(xiě),要么全部小寫(xiě)的要求

8)、標(biāo)簽接口是沒(méi)有任何方法和屬性的接口,它不對(duì)實(shí)現(xiàn)類(lèi)有任何語(yǔ)義上的要求,僅僅表明它的實(shí)現(xiàn)類(lèi)屬于一個(gè)特定的類(lèi)型。它主要有兩個(gè)用途:第一,通過(guò)標(biāo)簽接口標(biāo)識(shí)同一類(lèi)型的類(lèi),這些類(lèi)本身可能并不具有相同的方法,如Advice接口;第二,通過(guò)標(biāo)簽接口使程序或JVM采取一些特殊處理,如java.io.Serializable,它告訴JVM對(duì)象可以被序列化

9)、AOP相關(guān)名詞

(1)連接點(diǎn):一個(gè)類(lèi)或一段程序代碼擁有一些具有邊界性質(zhì)的特定點(diǎn),Spring僅支持方法的連接點(diǎn)

(2)切點(diǎn):通過(guò)切點(diǎn)定位特定的連接點(diǎn)

(3)增強(qiáng):織入目標(biāo)類(lèi)連接點(diǎn)上的一段程序代碼

(4)目標(biāo)對(duì)象:增強(qiáng)邏輯的織入目標(biāo)類(lèi)

(5)引介:引介是一種特殊的增強(qiáng),它為類(lèi)添加一些屬性和方法

(6)織入:將增強(qiáng)添加到目標(biāo)類(lèi)的具體連接點(diǎn)上的過(guò)程

(7)代理:一個(gè)類(lèi)被AOP織入增強(qiáng)后,就產(chǎn)生了一個(gè)結(jié)果類(lèi),它是融合了原類(lèi)和增強(qiáng)邏輯的代理類(lèi)

(8)切面:切面由切點(diǎn)和增強(qiáng)組成

10)、增強(qiáng)類(lèi)型

(1)前置增強(qiáng):org.springframework.aop.BeforeAdvice代表前置增強(qiáng),表示在目標(biāo)方法執(zhí)行前實(shí)施增強(qiáng)

(2)后置增強(qiáng):org.springframework.aop.AfterReturningAdvice代表后置增強(qiáng),表示在目標(biāo)方法執(zhí)行前后實(shí)施增強(qiáng)

(3)環(huán)繞增強(qiáng):org.aopalliance.intercept.MethodInterceptor代表環(huán)繞增強(qiáng),表示在目標(biāo)方法執(zhí)行前后實(shí)施增強(qiáng)

(4)異常拋出增強(qiáng):org.springframework.aop.ThrowsAdvice代表拋出異常增強(qiáng),表示在目標(biāo)方法拋出異常后實(shí)施增強(qiáng)

(5)引介增強(qiáng):org.springframework.aop.IntroductionInterceptor代表引介增強(qiáng),表示在目標(biāo)類(lèi)中添加一些新的方法和屬性

11)、ThreadLocal是保存線(xiàn)程本地化對(duì)象的容器。當(dāng)運(yùn)行于多線(xiàn)程環(huán)境的某個(gè)對(duì)象使用ThreadLocal維護(hù)變量時(shí),ThreadLocal為每個(gè)使用該變量的線(xiàn)程分配一個(gè)獨(dú)立的變量副本。所以每個(gè)線(xiàn)程都可以獨(dú)立地改變自己的副本,而不會(huì)影響到其他線(xiàn)程所對(duì)應(yīng)的副本

InheritableThreadLocal繼承于ThreadLocal,它自動(dòng)為子線(xiàn)程復(fù)制一份從父線(xiàn)程那里繼承而來(lái)的本地變量:在創(chuàng)建子線(xiàn)程時(shí),子線(xiàn)程會(huì)接收所有可繼承的線(xiàn)程本地變量的初始值

ThreadLocal類(lèi)中有一個(gè)Map,用于存儲(chǔ)每個(gè)線(xiàn)程的變量副本,Map中元素的鍵為線(xiàn)程對(duì)象,值為對(duì)應(yīng)線(xiàn)程的變量副本

同步機(jī)制采用了以時(shí)間換空間的方式,訪問(wèn)串行化,對(duì)象共享化;而ThreadLocal采用了以空間換時(shí)間的方式:訪問(wèn)并行化,對(duì)象獨(dú)享化

12)、SpringMVC流程圖

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • 使用Jenkins來(lái)構(gòu)建SVN+Maven項(xiàng)目的實(shí)現(xiàn)

    使用Jenkins來(lái)構(gòu)建SVN+Maven項(xiàng)目的實(shí)現(xiàn)

    這篇文章主要介紹了使用Jenkins來(lái)構(gòu)建SVN+Maven項(xiàng)目的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Springboot集成magic-api的詳細(xì)過(guò)程

    Springboot集成magic-api的詳細(xì)過(guò)程

    這篇文章主要介紹了Springboot集成magic-api的相關(guān)知識(shí),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • java處理數(shù)據(jù)庫(kù)不支持的emoji表情符問(wèn)題解決

    java處理數(shù)據(jù)庫(kù)不支持的emoji表情符問(wèn)題解決

    這篇文章主要介紹了java處理數(shù)據(jù)庫(kù)不支持的emoji表情符問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java數(shù)組添加元素的兩種方法

    Java數(shù)組添加元素的兩種方法

    這篇文章主要介紹了Java數(shù)組添加元素的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Java中關(guān)于char類(lèi)型變量能夠輸出中文的問(wèn)題

    Java中關(guān)于char類(lèi)型變量能夠輸出中文的問(wèn)題

    這篇文章主要介紹了Java中關(guān)于char類(lèi)型變量能夠輸出中文的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java編程經(jīng)典小游戲設(shè)計(jì)-打磚塊小游戲源碼

    Java編程經(jīng)典小游戲設(shè)計(jì)-打磚塊小游戲源碼

    這篇文章主要介紹了Java編程經(jīng)典小游戲設(shè)計(jì)-打磚塊小游戲源碼,還是挺不錯(cuò)的,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Postman實(shí)現(xiàn)傳List<String>集合

    Postman實(shí)現(xiàn)傳List<String>集合

    這篇文章主要介紹了Postman實(shí)現(xiàn)傳List<String>集合方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java數(shù)據(jù)結(jié)構(gòu)排序算法之歸并排序詳解

    java數(shù)據(jù)結(jié)構(gòu)排序算法之歸并排序詳解

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)排序算法之歸并排序,結(jié)合具體實(shí)例形式詳細(xì)分析了歸并排序的原理、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • Java多線(xiàn)程中的CountDownLatch詳細(xì)解讀

    Java多線(xiàn)程中的CountDownLatch詳細(xì)解讀

    這篇文章主要介紹了Java多線(xiàn)程中的CountDownLatch詳細(xì)解讀,一個(gè)同步輔助類(lèi),在完成一組正在其他線(xiàn)程中執(zhí)行的操作之前,它允許一個(gè)或多個(gè)線(xiàn)程一直等待,用給定的計(jì)數(shù) 初始化 CountDownLatch,需要的朋友可以參考下
    2023-11-11
  • Java中Object類(lèi)常用的12個(gè)方法(小結(jié))

    Java中Object類(lèi)常用的12個(gè)方法(小結(jié))

    Java 中的 Object 方法在面試中是一個(gè)非常高頻的點(diǎn),本文主要介紹了Java中Object類(lèi)常用的12個(gè)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評(píng)論

山东| 崇左市| 龙门县| 肇州县| 木兰县| 东阿县| 于都县| 遂平县| 杭州市| 抚远县| 金山区| 阿尔山市| 蛟河市| 育儿| 外汇| 兴海县| 宁远县| 泰顺县| 无锡市| 高雄县| 平南县| 宁安市| 延长县| 淮阳县| 北京市| 罗田县| 中超| 竹溪县| 吉木萨尔县| 汶上县| 贵德县| 牙克石市| 揭阳市| 酒泉市| 汾西县| 井研县| 阿拉善右旗| 清镇市| 宁都县| 化州市| 西吉县|