報錯現象:
@Autowired的對象變量底部有紅色波浪線,錯誤大緻意思為:沒有比對到類型為GateFeignClient的bean。
解決方法:
(1)因為該錯誤并不影響程式的運作,是以可以直接更改idea的檢查機制即可。
打開Settings,将第六步的Error改為Warning就不會報錯了。
(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方式進行裝配;如果沒有比對,則回退為一個原始類型進行比對,如果比對則自動裝配。