Autowired和 Resource的區別

2021-08-20 13:38:04 字數 1013 閱讀 8496

@resource裝配順序

1. 如果同時指定了name和type,則從spring上下文中找到唯一匹配的bean進行裝配,找不到則丟擲異常

2. 如果指定了name,則從上下文中查詢名稱(id)匹配的bean進行裝配,找不到則丟擲異常

3. 如果指定了type,則從上下文中找到型別匹配的唯一bean進行裝配,找不到或者找到多個,都會丟擲異常

4. 如果既沒有指定name,又沒有指定type,則自動按照byname方式進行裝配;如果沒有匹配,則回退為乙個原始型別進行匹配,如果匹配則自動裝配;

在基於主機方式配置spring的配置檔案中,你可能會見到

這樣一條配置,他的作用是式地向 spring 容器註冊

這 4 個beanpostprocessor。註冊這4個beanpostprocessor的作用,就是為了你的系統能夠識別相應的註解。

**:@resource註解 

@resource註解和@autowired一樣,也可以標註在字段或屬性的setter方法上 

@resource預設按名稱裝配,名稱可以通過name屬性指定。當找不到與名稱匹配的bean時,才會按型別裝配 

若註解標註在字段上且未指定name屬性,則預設取欄位名作為bean名稱尋找依賴物件 

若註解標註在setter上且未指定name屬性,則預設取屬性名作為bean名稱尋找依賴物件 

如果沒有指定name屬性,並且按照預設的名稱仍找不到依賴物件時,它就會按型別匹配 

但只要指定了name屬性,就只能按名稱裝配了

@autowired註解 

@autowired預設是按型別裝配物件的,預設情況下它要求依賴物件必須存在 

如果允許null值,可以設定它的required屬性為false,如@autowired(required=false) 

若想要按名稱裝配,可以結合@qualifier註解一起使用,如@autowired(required=false)  @qualifier("persondaobean")

**:

Autowired和 Resource詳細講解

autowired和 resource註解的區別 從spring容器中獲取userdao型別bean 實現類 注入該屬性bytype 根據型別注入 如果存在且唯一,則ok 如果不唯一,組合使用 qualifier userdaoimpl 尋找name為userdaoimpl的bean。autowir...

Resource和 Autowired 注入解釋

resource和 autowired都是通過在介面類上加註解實現 實現類的注入 即 要使用 resource和 autowired實現注入某個實體物件,必須先新建乙個實體物件的介面類,然後再讓實體類實現該介面 例 component private class buscar 要實現注入buscar...

Autowired和 Resource註解的區別

autowired註解是按型別裝配依賴物件,預設情況下它要求依賴物件必須存在,如果允許null值,可以設定它required屬性為false。如果我們想使用按名稱裝配,可以結合 qualifier註解一起使用。如下 autowired qualifier persondaobean private ...