天天看點

idea項目下使用@Autowired報錯分析報錯現象:解決方法:

報錯現象:

@Autowired的對象變量底部有紅色波浪線,錯誤大緻意思為:沒有比對到類型為GateFeignClient的bean。

idea項目下使用@Autowired報錯分析報錯現象:解決方法:

解決方法:

(1)因為該錯誤并不影響程式的運作,是以可以直接更改idea的檢查機制即可。

打開Settings,将第六步的Error改為Warning就不會報錯了。

idea項目下使用@Autowired報錯分析報錯現象:解決方法:

(2)@Autowired(required = false)

根據報錯提示可以看出,自動注入變量gateFerginClient為null,是以idea會報錯。可以在@Autowired後面加上(required = false),代表允許注入為null值。

(3)@Resource

因為@Autowired是根據type類型比對符合條件的bean進行裝配,可以改為@Resource,@Resource可以根據name和type進行比對。

@Resource裝配順序:

①如果同時指定了name和type,則從Spring上下文中找到唯一比對的bean進行裝配,找不到則抛出異常。

②如果指定了name,則從上下文中查找名稱(id)比對的bean進行裝配,找不到則抛出異常。

③如果指定了type,則從上下文中找到類似比對的唯一bean進行裝配,找不到或是找到多個,都會抛出異常。

④如果既沒有指定name,又沒有指定type,則自動按照byName方式進行裝配;如果沒有比對,則回退為一個原始類型進行比對,如果比對則自動裝配。