一、@resource注入
現在有乙個介面human和兩個實現類manimpl、womanimpl,在service層的乙個bean中要引用了介面human,這種情況處理如下:
介面human
public inte***ce human
public void walk() 實現類womanimpl
@service
public class womanimpl implements human
public void walk() 主調類sequenceserviceimpl
@service
public class sequenceserviceimpl implements sequenceservice
報錯的地方給我們提示了:but found 2: manimpl,womanimpl 意思是human有兩個實現類。解決方案如下:
@service
public class sequenceserviceimpl implements sequenceservice
這樣啟動服務就不會報錯了。
如果是使用的@autowired註解,要配上@qualifier(「manimpl」),**如下:
@service
public class sequenceserviceimpl implements sequenceservice {
@autowired
@qualifier("manimpl")
private human human;
詳細原文: 註解 Resource與 Autowired的區別
注意 spring容器以name為key儲存bean!這裡的name可以指定,否則取首字母小寫的類名。有相同的就報異常 beandefinitionstoreexception!resource resource有兩個常用屬性name type,所以分4種情況 指定name和type 通過name找...
註解 Autowired與 Resource的區別
共同點 resource和 autowired都可以作為注入屬性的修飾,在介面僅有單一實現類時,兩個註解的修飾效果相同,可以互相替換,不影響使用。注意 在只有單一的實現類時,兩個註解的作用相同 不同點 在spring中 autowired注入規則 autowired預設是按照bytype進行注入的,...
Resource與 Autowired註解的區別
resource的作用相當於 autowired,只不過 autowired按bytype自動注入,而 resource預設按 byname自動注入罷了。resource有兩個屬性是比較重要的,分是name和type,spring將 resource註解的name屬性解析為bean的名字,而type...