註解 Resource與 Autowired的區別

2021-10-03 07:50:09 字數 957 閱讀 5908

注意:spring容器以name為key儲存bean!這裡的name可以指定,

否則取首字母小寫的類名。有相同的就報異常:beandefinitionstoreexception!

@resource

@resource有兩個常用屬性name、type,所以分4種情況

指定name和type:通過name找到唯一的bean,找不到丟擲異常;如果type和字段型別不一致,也會丟擲異常

指定name:通過name找到唯一的bean,找不到丟擲異常

指定type:通過tpye找到唯一的bean,如果不唯一,則丟擲異常:nouniquebeandefinitionexception

都不指定:通過欄位名作為key去查詢,找到則賦值;找不到則再通過字段型別去查詢,如果不唯一,則丟擲異常:nouniquebeandefinitionexception

@autowired

@autowired只有乙個屬性required,預設值為true,為true時,找不到就拋異常,為false時,找不到就賦值為null

@autowired按型別查詢,如果該型別的bean不唯一,則丟擲異常;可通過組合註解解決@autowired()@qualifier(「basedao」)

相同點spring都支援

都可以作用在字段和setter方法上

不同點resource是jdk提供的,而autowired是spring提供的

resource不允許找不到bean的情況,而autowired允許(@autowired(required = false))

指定name的方式不一樣,@resource(name = 「basedao」),@autowired()@qualifier(「basedao」)

resource預設通過name查詢,而autowired預設通過type查詢

使用哪個?

都差不多,哈哈,喜歡哪個用哪個_

Resource與 Autowired註解的區別

一 resource注入 現在有乙個介面human和兩個實現類manimpl womanimpl,在service層的乙個bean中要引用了介面human,這種情況處理如下 介面human public inte ce human public void walk 實現類womanimpl serv...

註解 Autowired與 Resource的區別

共同點 resource和 autowired都可以作為注入屬性的修飾,在介面僅有單一實現類時,兩個註解的修飾效果相同,可以互相替換,不影響使用。注意 在只有單一的實現類時,兩個註解的作用相同 不同點 在spring中 autowired注入規則 autowired預設是按照bytype進行注入的,...

Resource與 Autowired註解的區別

resource的作用相當於 autowired,只不過 autowired按bytype自動注入,而 resource預設按 byname自動注入罷了。resource有兩個屬性是比較重要的,分是name和type,spring將 resource註解的name屬性解析為bean的名字,而type...