這篇文章主要講解了“Bean依賴注入的簡單介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Bean依賴注入的簡單介紹”吧!
七臺河ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
容器在加載BeanDefinition
時會調(diào)用bd.getPropertyValues().addPropertyValue(pv);
成員變量的定義信息添加到BeanDefinition
對象中
容器在AbstractAutowireCapableBeanFactory
的doCreateBean()
方法中調(diào)用populate()
方法執(zhí)行依賴注入的邏輯
執(zhí)行populate()
方法時會調(diào)用mbd.getPropertyValues()
獲取BeanDefinition
對象中的成員變量的定義信息,根據(jù)此信息進行依賴注入
protected void populateBean(String beanName, RootBeanDefinition mbd, @Nullable BeanWrapper bw) { if (bw == null) { ... } ... // 獲取bean定義信息中的成員變量定義信息 PropertyValues pvs = (mbd.hasPropertyValues() ? mbd.getPropertyValues() : null); if (mbd.getResolvedAutowireMode() == RootBeanDefinition.AUTOWIRE_BY_NAME || mbd.getResolvedAutowireMode() == RootBeanDefinition.AUTOWIRE_BY_TYPE) { MutablePropertyValues newPvs = new MutablePropertyValues(pvs); // Add property values based on autowire by name if applicable. if (mbd.getResolvedAutowireMode() == RootBeanDefinition.AUTOWIRE_BY_NAME) { autowireByName(beanName, mbd, bw, newPvs); } // Add property values based on autowire by type if applicable. if (mbd.getResolvedAutowireMode() == RootBeanDefinition.AUTOWIRE_BY_TYPE) { autowireByType(beanName, mbd, bw, newPvs); } pvs = newPvs; } ... if (pvs != null) { // 應(yīng)用成員變量的定義信息 applyPropertyValues(beanName, mbd, bw, pvs); } }
applyPropertyValues(beanName, mbd, bw, pvs);
——bw.setPropertyValues()
——setPropertyValue()
遍歷成員變量定義信息,逐個注入
容器根據(jù)成變量定義信息使用getBean()
獲取到bean,再使用反射調(diào)用setterXxx()
方法或其他方法將bean注入到bean中
感謝各位的閱讀,以上就是“Bean依賴注入的簡單介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Bean依賴注入的簡單介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)頁標(biāo)題:Bean依賴注入的簡單介紹
新聞來源:http://www.rwnh.cn/article40/jisdeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、微信公眾號、外貿(mào)建站、面包屑導(dǎo)航、Google、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)