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

介紹下Java Spring的核心接口,容器中Bean的實(shí)例化

 更新時(shí)間:2021年09月07日 09:19:08   作者:Code楚天  
這篇文章主要介紹了Spring核心接口,容器中bean的實(shí)例化過(guò)程解析及完整代碼示例,簡(jiǎn)單分析實(shí)例化bean過(guò)程并且分享了相關(guān)實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下

Spring的核心接口

ApplicationContext接口

繼承了BeanFactory并且提供了加載資源文件的方法

ApplicationContext其實(shí)就是一個(gè)容器,ApplicationContext的實(shí)例其實(shí)就是容器對(duì)象,這個(gè)容器對(duì)象在實(shí)例化過(guò)程中其實(shí)就是容器初始化的過(guò)程

下面這幾個(gè)都是ApplicationContext接口的實(shí)現(xiàn)類(lèi)

ClasspathXmlApplicationContext加載Classpath下的xml格式的配置文件,初始化這樣的實(shí)例

FileSystemXmlApplicationContext加載文件路徑下的xml文件

AnnotationConfigApplicationContext注解配置

SpringMVC: WebApplicationContext 這個(gè)還沒(méi)有引入對(duì)應(yīng)的依賴(lài)所以暫時(shí)看不到 

 

 BeanFactory接口

生產(chǎn)bean,生產(chǎn)全部bean,容器。ApplicationContext接口繼承了BeanFactory接口

也就是說(shuō)BeanFactory接口實(shí)際上提供了Bean獲得組件  管理組件方法

Spring容器中Bean的實(shí)例化

Spring的核心就是控制反轉(zhuǎn),它要控制實(shí)例的生成(實(shí)例化)

實(shí)例化主要有以下幾種方式

構(gòu)造方法

無(wú)參構(gòu)造方法

默認(rèn)使用的就是無(wú)參構(gòu)造方法,最常用的

先貼出來(lái)xml文件,其中如果有參構(gòu)造方法把無(wú)參構(gòu)造方法覆蓋掉的話,就需要constructor-arg標(biāo)簽來(lái)告知,其中的name標(biāo)簽就是對(duì)應(yīng)的有參構(gòu)造方法的參數(shù)名,而無(wú)參構(gòu)造方法想要給屬性做賦值就只需要property子標(biāo)簽即可

有參構(gòu)造方法

 測(cè)試后我們發(fā)現(xiàn)

 

工廠

靜態(tài)工廠

工廠里的生產(chǎn)方法是靜態(tài)方法

 注冊(cè)組件

實(shí)例工廠

工廠里的生產(chǎn)方法不是靜態(tài)方法

組件注冊(cè)

我們需要額外注冊(cè)組件,并且要告訴其工廠是誰(shuí) 工廠要使用的方法是什么

 測(cè)試類(lèi)

 

這里我們發(fā)現(xiàn)雖然都是User 但他們不是同一個(gè)組件

 注意:如果直接去取的話或發(fā)生異常

此時(shí)加個(gè)id再去取出就可以了,

 

方法二:可以使用Map方式,按照類(lèi)型去取出User組件

 

 

靜態(tài)工廠和實(shí)例工廠在整合一些已有的工具類(lèi)的時(shí)候,工具類(lèi)有一些靜態(tài)方法返回某一些實(shí)例而后面要去使用這些實(shí)例,就需要使用靜態(tài)工廠方法注冊(cè)組件

FactoryBean→使用工廠方法

FactoryBean實(shí)際上是個(gè)接口,我們看下它的代碼

 getObject()就是生產(chǎn)方法,其實(shí)就是返回一個(gè)實(shí)例


使用UserFactoryBean的set方法去給User做一個(gè)賦值

 

 注冊(cè)組件

我們的目的是想要通過(guò)FactoryBean獲取到一個(gè)User類(lèi)型的組件

 通過(guò)FactoryBean注冊(cè)的組件類(lèi)型:和getObject方法的返回值是相關(guān)的,簡(jiǎn)單來(lái)講就是Spring再檢查注冊(cè)組件的時(shí)候會(huì)檢查組件有沒(méi)有實(shí)現(xiàn)FactoryBean接口如果有實(shí)現(xiàn)就會(huì)去找到里面的getObject方法,把getObject返回的實(shí)例注冊(cè)為容器中的組件

面試題:

BeanFactory和FactoryBean區(qū)別

都可以注冊(cè)組件

BeanFactory:生產(chǎn)的是全部組件

FactoryBean:注冊(cè)的特定類(lèi)型的組件

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Spring Boot 配置隨機(jī)數(shù)的技巧代碼詳解

    Spring Boot 配置隨機(jī)數(shù)的技巧代碼詳解

    這篇文章主要介紹了Spring Boot 配置隨機(jī)數(shù)技巧,spring boot 支持在系統(tǒng)加載的時(shí)候配置隨機(jī)數(shù),具體實(shí)例代碼大家參考下本文
    2018-05-05
  • 詳解SpringMVC @RequestBody接收J(rèn)son對(duì)象字符串

    詳解SpringMVC @RequestBody接收J(rèn)son對(duì)象字符串

    這篇文章主要介紹了詳解SpringMVC @RequestBody接收J(rèn)son對(duì)象字符串,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 淺析Java自定義注解的用法

    淺析Java自定義注解的用法

    注解為我們?cè)诖a中添加信息提供一種形式化的方法,使我們可以在源碼、編譯時(shí)、運(yùn)行時(shí)非常方便的使用這些數(shù)據(jù)。本文主要為大家介紹了Java自定義注解的用法,希望對(duì)大家有所幫助
    2023-03-03
  • java高并發(fā)下解決AtomicLong性能瓶頸方案LongAdder

    java高并發(fā)下解決AtomicLong性能瓶頸方案LongAdder

    這篇文章主要為大家介紹了java高并發(fā)下解決AtomicLong性能瓶頸方案LongAdder,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Spring Boot中使用Spring-Retry重試框架的實(shí)現(xiàn)

    Spring Boot中使用Spring-Retry重試框架的實(shí)現(xiàn)

    本文主要介紹了Spring Boot中使用Spring-Retry重試框架的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Java定義泛型方法實(shí)例分析

    Java定義泛型方法實(shí)例分析

    這篇文章主要介紹了Java定義泛型方法,結(jié)合實(shí)例形式分析了java定義泛型的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • 淺談Spring框架中@Autowired和@Resource的區(qū)別

    淺談Spring框架中@Autowired和@Resource的區(qū)別

    最近review別人代碼的時(shí)候,看到了一些@Autowired不一樣的用法,覺(jué)得有些意思,下面這篇文章主要給大家介紹了關(guān)于Spring框架中@Autowired和@Resource區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 基于Java實(shí)現(xiàn)掃碼登錄的示例代碼

    基于Java實(shí)現(xiàn)掃碼登錄的示例代碼

    相信大家對(duì)二維碼都不陌生,生活中到處充斥著掃碼登錄的場(chǎng)景,如登錄網(wǎng)頁(yè)版微信、支付寶等。本文將利用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)易版掃碼登錄的 Demo,需要的可以參考一下
    2022-04-04
  • Springboot項(xiàng)目Maven依賴(lài)沖突的問(wèn)題解決

    Springboot項(xiàng)目Maven依賴(lài)沖突的問(wèn)題解決

    使用Spring Boot和Maven進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí),依賴(lài)沖突是一個(gè)常見(jiàn)的問(wèn)題,本文就來(lái)介紹一下Springboot項(xiàng)目Maven依賴(lài)沖突的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Java如何求交集、并集、差集

    Java如何求交集、并集、差集

    這篇文章主要介紹了Java如何求交集、并集、差集問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評(píng)論

石台县| 抚远县| 平远县| 汕头市| 新安县| 禄劝| 新和县| 安福县| 临沧市| 隆安县| 石台县| 烟台市| 九龙坡区| 包头市| 荣昌县| 简阳市| 盐亭县| 高州市| 龙井市| 南乐县| 康定县| 富裕县| 顺义区| 保山市| 青神县| 武冈市| 获嘉县| 丹阳市| 仁寿县| 阿拉善盟| 台湾省| 株洲县| 罗山县| 福清市| 荥经县| 彰化市| 包头市| 信宜市| 罗平县| 萝北县| 宝兴县|