欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

圖解Spring容器中實(shí)例化bean的四種方式

 更新時(shí)間:2023年11月24日 09:39:19   作者:扛麻袋的少年  
這篇文章主要介紹了圖解Spring容器中實(shí)例化bean的四種方式,傳統(tǒng)應(yīng)用程序可以通過new和反射方式進(jìn)行實(shí)例化Bean,而Spring IOC容器則需要根據(jù) Bean 定義里的配置元數(shù)據(jù),使用反射機(jī)制來創(chuàng)建Bean,需要的朋友可以參考下

前言

Spring IOC容器如何實(shí)例化Bean呢?傳統(tǒng)應(yīng)用程序可以通過new和反射方式進(jìn)行實(shí)例化Bean。而Spring IOC容器則需要根據(jù) Bean 定義里的配置元數(shù)據(jù),使用反射機(jī)制來創(chuàng)建Bean。

在Spring IOC容器中根據(jù)Bean定義創(chuàng)建Bean主要有以下幾種方式:

1.使用構(gòu)造器實(shí)例化Bean

這是最簡單的方式,Spring IOC容器既能使用1.默認(rèn)空構(gòu)造器也能使用2.有參數(shù)構(gòu)造器兩種方式創(chuàng)建Bean,如以下方式指定要?jiǎng)?chuàng)建的Bean類型:

1.1 使用空構(gòu)造器

使用空構(gòu)造器進(jìn)行定義,使用此種方式,class屬性指定的類必須有空構(gòu)造器

在這里插入圖片描述

1.2 使用有參構(gòu)造器

使用有參構(gòu)造器進(jìn)行定義,使用此種方式,可以使用<constructor-arg>標(biāo)簽指定構(gòu)造器參數(shù)值,其中index表示位置,value表示常量值,也可以指定引用,指定引用使用ref來引用另一個(gè)Bean定義;

在這里插入圖片描述

2.使用靜態(tài)工廠方式實(shí)例化Bean

使用這種方式,除了指定必須的class屬性,還要使用factory-method屬性來指定實(shí)例化Bean的方法,而且使用靜態(tài)工廠方法也允許指定方法參數(shù),spring IOC容器將調(diào)用此屬性指定的方法來獲取Bean。

Hello.java

Hello.java

靜態(tài)工廠類,返回一個(gè)Hello對象

在這里插入圖片描述

靜態(tài)工廠類,返回一個(gè)Hello對象

在這里插入圖片描述

測試類,輸出helloworld

在這里插入圖片描述

3.使用實(shí)例工廠方法實(shí)例化Bean

使用這種方式不能指定class屬性,此時(shí)必須使用factory-bean屬性來指定工廠Bean,factory-method屬性指定實(shí)例化Bean的方法,而且使用實(shí)例工廠方法允許指定方法參數(shù),方式和使用構(gòu)造器方式一樣。

Hello.java

在這里插入圖片描述

實(shí)例工廠方法 HelloInstanceFactory1.java(只是去掉了static關(guān)鍵字)

在這里插入圖片描述

bean配置

在這里插入圖片描述

測試類,輸出helloworld2

在這里插入圖片描述

4.用 setter 方式

在這里插入圖片描述

bean配置

在這里插入圖片描述

這種方式,只要寫上對應(yīng)的set、get方法,然后再bean.xml文件中利用property注入值即可

到此這篇關(guān)于圖解Spring容器中實(shí)例化bean的四種方式的文章就介紹到這了,更多相關(guān)Spring實(shí)例化bean內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • kafka運(yùn)維consumer-groups.sh消費(fèi)者組管理

    kafka運(yùn)維consumer-groups.sh消費(fèi)者組管理

    這篇文章主要為大家介紹了kafka運(yùn)維consumer-groups.sh消費(fèi)者組管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Java private修飾符失效的原因

    Java private修飾符失效的原因

    在Java編程里,使用private關(guān)鍵字修飾了一個(gè)成員,只有成員內(nèi)部可以訪問,其余成員都不可訪問,今天說明一下private功能失效的問題。
    2020-10-10
  • Spring Cloud Gateway 獲取請求體(Request Body)的多種方法

    Spring Cloud Gateway 獲取請求體(Request Body)的多種方法

    這篇文章主要介紹了Spring Cloud Gateway 獲取請求體(Request Body)的多種方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • PowerJob的AbstractScriptProcessor實(shí)現(xiàn)類工作流程源碼解讀

    PowerJob的AbstractScriptProcessor實(shí)現(xiàn)類工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的AbstractScriptProcessor源碼流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 歸并排序的實(shí)現(xiàn)代碼與思路

    歸并排序的實(shí)現(xiàn)代碼與思路

    歸并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個(gè)非常典型的應(yīng)用。
    2013-03-03
  • Spring?Boot中的max-http-header-size配置方式

    Spring?Boot中的max-http-header-size配置方式

    這篇文章主要介紹了Spring?Boot中的max-http-header-size配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 教你輕松制作java視頻播放器

    教你輕松制作java視頻播放器

    這篇文章主要為大家詳細(xì)介紹了如何編寫屬于自己的java視頻播放器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • idea中如何使用git進(jìn)行版本回退詳解

    idea中如何使用git進(jìn)行版本回退詳解

    工作中遇到git遠(yuǎn)程倉庫需要回退到歷史版本的問題,根據(jù)網(wǎng)上的搜索結(jié)果結(jié)合自己的實(shí)踐,下面這篇文章主要給大家介紹了關(guān)于idea中如何使用git進(jìn)行版本回退的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Resilience4J通過yml設(shè)置circuitBreaker的方法

    Resilience4J通過yml設(shè)置circuitBreaker的方法

    Resilience4j是一個(gè)輕量級、易于使用的容錯(cuò)庫,其靈感來自Netflix Hystrix,但專為Java 8和函數(shù)式編程設(shè)計(jì),這篇文章主要介紹了Resilience4J通過yml設(shè)置circuitBreaker的方法,需要的朋友可以參考下
    2022-10-10
  • Java中精確的浮點(diǎn)運(yùn)算操作示例

    Java中精確的浮點(diǎn)運(yùn)算操作示例

    這篇文章主要介紹了Java中精確的浮點(diǎn)運(yùn)算操作方法,結(jié)合具體實(shí)例形式分析了java浮點(diǎn)數(shù)運(yùn)算的相關(guān)函數(shù)、使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2017-06-06

最新評論