日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring思维导图,让Spring不再难懂(ioc篇)

發(fā)布時(shí)間:2023/12/3 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring思维导图,让Spring不再难懂(ioc篇) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自?Spring思維導(dǎo)圖,讓Spring不再難懂(ioc篇)

寫過(guò)java的都知道:所有的對(duì)象都必須創(chuàng)建;或者說(shuō):使用對(duì)象之前必須先創(chuàng)建。而使用ioc之后,你就可以不再手動(dòng)創(chuàng)建對(duì)象,而是從ioc容器中直接獲取對(duì)象。

就好像我們無(wú)需考慮對(duì)象的銷毀回收一樣,因?yàn)閖ava垃圾回收機(jī)制幫助我們實(shí)現(xiàn)了這個(gè)過(guò)程;而ioc則是讓我們無(wú)需考慮對(duì)象的創(chuàng)建過(guò)程,由ioc容器幫我們實(shí)現(xiàn)對(duì)象的創(chuàng)建、注入等過(guò)程。

控制反轉(zhuǎn)

spring ioc容器

在Spring框架中的核心組件只有三個(gè):Core、Context和Bean。它們構(gòu)建起了整個(gè)Spring的骨骼架構(gòu),沒(méi)有它們就不可能有AOP、Web等特性功能。

如果說(shuō)在三個(gè)核心中再選出一個(gè)核心,那就非Bean莫屬了。可以說(shuō),Spring就是面向Bean的編程,Bean在Spring中才是真正的主角。

Spring為何如此流行?你會(huì)發(fā)現(xiàn)Spring解決了一個(gè)非常關(guān)鍵的問(wèn)題,它可以讓你對(duì)對(duì)象之間的關(guān)系轉(zhuǎn)而用配置文件來(lái)管理,或者注解,也就是它的依賴注入機(jī)制。而這個(gè)注入關(guān)系在一個(gè)叫Ioc的容器中管理。Ioc容器就是被Bean包裹的對(duì)象。Spring正是通過(guò)把對(duì)象包裝在Bean中從而達(dá)到管理這些對(duì)象及做一些列額外操作的目的。

核心組件協(xié)同工作

BeanFactory與ApplacationContext的區(qū)別

IOC中最核心的接口是Beanfactory提供IOC的高級(jí)服務(wù),而ApplicationContext是建立在BeanFactory基礎(chǔ)之上提供抽象的面向應(yīng)用的服務(wù)。

3種注入方式

在Spring框架中,依賴注入(DI)的設(shè)計(jì)模式是用來(lái)定義對(duì)象彼此間的依賴。使用xml配置bean的情況下,它主要有兩種類型:

  • Setter方法注入
  • 構(gòu)造器注入

當(dāng)然,有了注解之后,使用注解的方式更加方便快捷。即自動(dòng)裝配功能實(shí)現(xiàn)屬性自動(dòng)注入(@autowire)。

寫到這里,讓我想起了最近在牛客網(wǎng)上看的一道選擇題了:

下面有關(guān)spring的依賴注入,說(shuō)法錯(cuò)誤的是?A、依賴注入通常有如下兩種:設(shè)置注入和構(gòu)造注入:B、構(gòu)造注入可以在構(gòu)造器中決定依賴關(guān)系的注入順序,優(yōu)先依賴的優(yōu)先注入C、當(dāng)設(shè)值注入與構(gòu)造注入同時(shí)存在時(shí),先執(zhí)行構(gòu)造注入,再執(zhí)行設(shè)值注入D、設(shè)值注入是指IoC容器使用屬性的setter方法來(lái)注入被依賴的實(shí)例。這種注入方式比較簡(jiǎn)單、直觀

牛客網(wǎng)給出的答案是選C,不過(guò)網(wǎng)友們好像對(duì)答案有不同的意見(jiàn)哈。查看網(wǎng)友評(píng)論及答案

原理解析

Spring的代碼還真是不好讀,分得太細(xì)了,文字也是難以描述出來(lái),看了別人有關(guān)的博客,貼了好多代碼,畫了好多ER圖來(lái)描述關(guān)鍵接口或類之間的關(guān)系。這么一篇這么長(zhǎng)文章下來(lái),大家也未必會(huì)認(rèn)真讀代碼,看ER圖,干脆也不跟風(fēng)了。就貼了一點(diǎn)在我看來(lái)特關(guān)鍵的代碼,嘿嘿。

context的初始化過(guò)程

當(dāng)運(yùn)行ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");?構(gòu)造方法ClassPathXmlApplicationContext(String configLocation)調(diào)用了this(new String[] {configLocation}, true, null);, 該構(gòu)造方法具體代碼如下。

從時(shí)序圖來(lái)看啟動(dòng)上述初始化


總結(jié)

以上是生活随笔為你收集整理的Spring思维导图,让Spring不再难懂(ioc篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。