亚洲人成图片小说网站,亚洲AV无码1区2区久久,亚洲一区二区三区日本久久九,国产精品 高清 尿 小便 嘘嘘,精品国产一区二区三区免费

網(wǎng)站開(kāi)發(fā) APP開(kāi)發(fā) 小程序開(kāi)發(fā) SEO優(yōu)化 公司新聞

autowiring(自動(dòng)依賴(lài)裝配)的實(shí)現

2018-06-06 12:10:41
804

  在前面對IoC容器實(shí)現原理的分析中直是通過(guò) Bean Definition的屬性值和構造函數以顯式的方式對Bean的依賴(lài)關(guān)系進(jìn)行管理的。在 Spring中,相對這種顯式的依賴(lài)管理方式IoC容器還提供了自動(dòng)依賴(lài)裝配的方式,為應用使用容器提供更大的方便。在自動(dòng)裝配中,不需要對Bean屬性做顯式的依賴(lài)關(guān)系聲明,只需要配置好 autowiring屬性,IoC容器會(huì )根據這個(gè)屬性的配置,使用反射自動(dòng)查找屬性的類(lèi)型或者名字,然后基于屬性的類(lèi)型或名字來(lái)自動(dòng)匹配oC容器中的Bean,從而自動(dòng)地完成依賴(lài)注入。

  這是一個(gè)很有誘惑力的功能特性,使用它可以完成依賴(lài)關(guān)系管理的自動(dòng)化,但是使用時(shí)定要注意,計算機只是在自動(dòng)執行,它是不會(huì )思考的。使用這個(gè)特性的優(yōu)點(diǎn)是能夠減少用戶(hù)配置Bean的工作量,但它是一把雙刃劍,如果使用不當,也會(huì )為應用帶來(lái)不可預見(jiàn)的后果調方所以,使用時(shí)需要多一些小心和謹慎。

  從 autowiring使用上可以知道,這個(gè) autowiring屬性在對Bean屬性進(jìn)行依賴(lài)注入時(shí)起作用ax:對Bean屬性依賴(lài)注入的實(shí)現原理,在前面已經(jīng)做過(guò)分析?;仡櫮遣糠謨热?不難發(fā)現,對autowirng屬性進(jìn)行處理,從而完成對Bean屬性的自動(dòng)依賴(lài)裝配,是在 populate Bean中實(shí)現的節選 AbstractAutowire Capable Bean Factory的 populate Bean方法中與autowiring實(shí)現相關(guān)的部行體次分,可以清楚地看到這個(gè)特性在容器中實(shí)現的入口。也就是說(shuō),對屬性 autowiring的處理是populateBean處理過(guò)程的一個(gè)部分。在 populate Bean的實(shí)現中,在處理一般的Bean之前,先對 autowiring屬性進(jìn)行處理。如果當前的Bean配置了 autowire_by_name和 autowire_by_type屬性,那么調用相應的 autowireByName方法和 autowire ByType方法。這兩個(gè)方法很巧妙地應用1C容器的特性。例如,對于 autowire_ by_name,它首先通過(guò)反射機制從當前Bean中得到需要注入的屬性名,然后使用這個(gè)屬性名向容器申請與之同名的Bean,這樣實(shí)際又觸發(fā)了另Bean的生成和依賴(lài)注入的過(guò)程。

?