电竞比分网-中国电竞赛事及体育赛事平台

分享

IntelliJ Idea解決Could not autowire. No beans of 'xxxx' type found的錯誤提示

 wwq圖書世界 2022-06-15 發(fā)布于山東

1.問題描述
  在Idea的spring工程里,經常會遇到Could not autowire. No beans of 'xxxx’ type found的錯誤提示。但程序的編譯和運行都是沒有問題的,這個錯誤提示并不會產生影響。但紅色的錯誤提示在有些有強迫癥的程序員眼里,多多少少有些不太舒服。
在這里插入圖片描述
2. 原因
原因可能有兩個,第一個是IntellijIDEA本身工具的問題。第二個便是我們導入@Service包的時候導入包錯誤造成的
  第一種原因,spring auto scan配置,在編輯情況下,無法找不到對應的bean,于是提示找不到對應bean的錯誤。常見于mybatis的mapper,如下: 
在這里插入圖片描述
3. 解決方案
  針對第一種原因,解決辦法是:降低Autowired檢測的級別,將Severity的級別由之前的error改成warning或其它可以忽略的級別。
在這里插入圖片描述
針對第二種原因,解決方案當然是導入正確的包。首先我們來看下最容易導入的錯誤包,如下所示:
import com.alibaba.dubbo.config.annotation.Service;
正確的包應該是下面這個
import org.springframework.stereotype.Service;
切記切記?。。。。?br> 針對第三種原因,換成@Resource就可以了,不知道為啥
在這里插入圖片描述
spring中注解@Resource 與@Autowire 區(qū)別
@Resource與@Autowired的區(qū)別?
1.@Autowired按byType自動注入。

2.@Resource默認按byName自動注入。

但是@Resource有兩個屬性是比較重要的,分是name和type;

如果使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略;

3.@Autowired是spring自己定義的注解,@Resource是J2EE的,由JSR-250規(guī)范定義。

PS:個人建議用@Resource,不為什么,減少與spring的耦合。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多