久久久久久国产精品免费免,久久成人免费观看全部免费,久久久久久久久久免免费精品

網站開發 APP開發 小程序開發 SEO優化 公司新聞

autowiring(自動依賴裝配)的實現

2018-06-06 12:10:41
845

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

  這是一個很有誘惑力的功能特性,使用它可以完成依賴關系管理的自動化,但是使用時定要注意,計算機只是在自動執行,它是不會思考的。使用這個特性的優點是能夠減少用戶配置Bean的工作量,但它是一把雙刃劍,如果使用不當,也會為應用帶來不可預見的后果調方所以,使用時需要多一些小心和謹慎。

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

?
<rp id="cxbmw"></rp>

<sup id="cxbmw"></sup>
  • <rp id="cxbmw"><form id="cxbmw"><nav id="cxbmw"></nav></form></rp>
    <big id="cxbmw"><delect id="cxbmw"><font id="cxbmw"></font></delect></big>
    <rp id="cxbmw"></rp>
    主站蜘蛛池模板: 宁强县| 莆田市| 广灵县| 邯郸市| 通许县| 崇左市| 陆良县| 长汀县| 和田市| 广南县| 阳谷县| 大同市| 镇赉县| 嵊泗县| 丘北县| 灵武市| 金平| 盱眙县| 乌鲁木齐县| 克什克腾旗| 雅安市| 韶山市| 金沙县| 巴里| 逊克县| 大英县| 淳安县| 噶尔县| 昆明市| 青阳县| 陵川县| 湖州市| 布尔津县| 永靖县| 连南| 阳东县| 广元市| 台州市| 兴仁县| 阿克| 松阳县|