帶你了解Spring中bean的獲取
Spring 中bean的獲取
1.通過context.getbean 的方式來獲取bean
ApplicationContext:是spring繼BeanFactory之外的另一個核心接口或容器,允許容器通過應(yīng)用程序上下文環(huán)境創(chuàng)建、獲取、管理bean。也就是Spring中的所有的bean都是在這里管理的。
那么通過可以通過context.getbean 的方式來獲取bean的時候、如何填寫要獲取的bean的名字呢?也就是spring容器如何給注冊到容器中的bean命名呢?
AnnotationBeanNameGenerator
調(diào)用的是buildDefaultBeanName
方法
buildDefaultBeanName
方法調(diào)用的是Introspector.decapitalize
方法、也就是Introspector類中的decapitalize方法、這是JDK1.8的函數(shù)。命名的規(guī)則就是如果傳入的類的名字的長度大于1的話、如果第一個和第二個字母都是大寫的話、那么就返回類的名字、否則就將類的名字的首字母變?yōu)樾懙淖帜阜祷?
我們可以調(diào)用這個函數(shù)來做測試:
當(dāng)傳入的String是User、USer、USER 、 user的時候分別返回的是user、USer、USER、user、結(jié)果也是符合我們的預(yù)期的
2.通過類型來獲取注冊到Spring容器中的bean
LoginController loginController1 = context.getBean(LoginController.class);
兩者從Spring容器中獲取的bean是同一個bean
3.也可以使用這兩個注解來取出對象、也就是將這兩個對象作為另外一個對象的屬性的時候、可以使用這兩個注解來實現(xiàn)取bean。
@Autowired
@Resource
使用這三種的方式獲取到的bean都是同一個bean。
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
String?concat(String?str)使用小結(jié)
這篇文章主要介紹了String?concat(String?str)使用小結(jié),在了解concat()之前,首先需要明確的是String的兩點特殊性,一是長度不可變二是值不可變,本文給大家詳細(xì)講解,需要的朋友可以參考下2022-11-11SpringBoot項目中讀取resource目錄下的文件六種方法
這篇文章給大家總結(jié)了SpringBoot項目中讀取resource目錄下的文件六種方法,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下2024-05-05IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決
這篇文章主要介紹了IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12