注意: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...