圖解Spring容器中實例化bean的四種方式
前言
Spring IOC容器如何實例化Bean呢?傳統(tǒng)應用程序可以通過new和反射方式進行實例化Bean。而Spring IOC容器則需要根據(jù) Bean 定義里的配置元數(shù)據(jù),使用反射機制來創(chuàng)建Bean。
在Spring IOC容器中根據(jù)Bean定義創(chuàng)建Bean主要有以下幾種方式:
1.使用構(gòu)造器實例化Bean
這是最簡單的方式,Spring IOC容器既能使用1.默認空構(gòu)造器也能使用2.有參數(shù)構(gòu)造器兩種方式創(chuàng)建Bean,如以下方式指定要創(chuàng)建的Bean類型:
1.1 使用空構(gòu)造器
使用空構(gòu)造器進行定義,使用此種方式,class屬性指定的類必須有空構(gòu)造器

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

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

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

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

測試類,輸出helloworld

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

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

bean配置

測試類,輸出helloworld2

4.用 setter 方式

bean配置

這種方式,只要寫上對應的set、get方法,然后再bean.xml文件中利用property注入值即可
到此這篇關(guān)于圖解Spring容器中實例化bean的四種方式的文章就介紹到這了,更多相關(guān)Spring實例化bean內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Cloud Alibaba 之 Nacos教程詳解
Nacos是阿里的一個開源產(chǎn)品,它是針對微服務架構(gòu)中的服務發(fā)現(xiàn)、配置管理、服務治理的綜合性解決方案。這篇文章主要介紹了Spring Cloud Alibaba 之 Nacos的相關(guān)知識,需要的朋友可以參考下2020-11-11
解決bootstrap.yml不生效,無法優(yōu)先于application.yml文件加載問題
文章主要討論了在Spring Boot項目中,`bootstrap.yml`文件無法優(yōu)先于`application.yml`文件加載的問題,原因是缺少了`nacos-config`依賴,且需要確保Spring Boot版本與`nacos-config`版本匹配,作者希望通過分享個人經(jīng)驗,幫助他人解決類似問題2024-12-12

