使用 Autowired註解報錯解決的辦法

2021-09-11 19:38:49 字數 881 閱讀 8264

方案一:@autowired(required = false)   設定required 屬性值為 false,錯誤提示消失。

方案二:用@resource註解替換@autowired註解,錯誤提示消失。

@autowired

基於spring的註解org.springframework.beans.factory.annotation.autowired,它預設是按型別進行的裝配的。

任何給定bean類只有乙個建構函式(最大值)可以宣告這個注釋,並將'required'引數設定為true,表示建構函式在用作spring bean時要自動裝配。如果多個非必需建構函式宣告了注釋,則它們將被視為自動裝配的候選者。將選擇具有最大數量的依賴項的建構函式,這些建構函式可以通過匹配spring容器中的bean來滿足。如果不能滿足任何候選者,則將使用主要/預設建構函式(如果存在)。如果乙個類只宣告乙個建構函式開頭,它將始終被使用,即使沒有注釋。帶注釋的建構函式不必是公共的。

@resource

是基於j2ee的註解(可以減少了與spring的耦合)(jdk1.6以上支援)預設是按名字進行註解。

注釋標記應用程式所需的資源。此注釋可以應用於應用程式元件類,或者該元件類的字段或方法。如果將該注釋應用於乙個欄位或方法,那麼初始化應用程式元件時容器將把所請求資源的乙個例項注入其中。如果將該注釋應用於元件類,則該注釋將宣告乙個應用程式在執行時將查詢的資源。

即使此注釋沒有被標記為 inherited,部署工具仍然需要檢查任意元件類的所有超類,以發現這些超類中所有使用此注釋的地方。所有此類注釋例項都指定了應用程式元件所需的資源。注意,此注釋可能出現在超類的 private 欄位和方法上;在這種情況下容器也需要執行注入操作。

springboot 中@autowired檔案報錯可能是 其他類不在啟動類的同級包或子級包下。

spring註解之 Autowired註解 二

我們繼續修改userservice把 autowired註解加在userservice對應的構造方法上如下 service public class userservice 增加乙個tostring方法 方便測試 override public string tostring 執行測試我們可以發現u...

Autowired報錯處理

剛接觸springboot時,經常會遇到idea中,autowired標紅報錯的問題,如下圖所示,還以為是程式的問題,後來發現是編輯器的問題。如何處理呢?在idea中,開啟設定 編輯器 inspections spring,選擇 springcore code autowiring for bean...

Resource與 Autowired註解的區別

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