Resource與 Autowired註解的區別

2021-09-11 02:07:09 字數 808 閱讀 4004

一、@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...