您好,登錄后才能下訂單哦!
Spring中怎么獲取bean,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1.通過context.getbean 的方式來獲取bean
ApplicationContext:是spring繼BeanFactory之外的另一個核心接口或容器,允許容器通過應用程序上下文環境創建、獲取、管理bean。也就是Spring中的所有的bean都是在這里管理的。
那么通過可以通過context.getbean 的方式來獲取bean的時候、如何填寫要獲取的bean的名字呢?也就是spring容器如何給注冊到容器中的bean命名呢?
AnnotationBeanNameGenerator
調用的是buildDefaultBeanName
方法
buildDefaultBeanName
方法調用的是Introspector.decapitalize
方法、也就是Introspector類中的decapitalize方法、這是JDK1.8的函數。命名的規則就是如果傳入的類的名字的長度大于1的話、如果第一個和第二個字母都是大寫的話、那么就返回類的名字、否則就將類的名字的首字母變為小寫的字母返回.
我們可以調用這個函數來做測試:
當傳入的String是User、USer、USER 、 user的時候分別返回的是user、USer、USER、user、結果也是符合我們的預期的
2.通過類型來獲取注冊到Spring容器中的bean
LoginController loginController1 = context.getBean(LoginController.class);
兩者從Spring容器中獲取的bean是同一個bean
3.也可以使用這兩個注解來取出對象、也就是將這兩個對象作為另外一個對象的屬性的時候、可以使用這兩個注解來實現取bean。
@Autowired
@Resource
使用這三種的方式獲取到的bean都是同一個bean。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。