這兩天裝了新版的idea(版本為2021.2)
IntelliJ IDEA 2021.2 (Ultimate Edition)
Build #IU-212.4746.92
導入公司項目,發現有地方報紅
這是我的 feignClient接口
1 @FeignClient(value = "order-server", qualifiers = "order-server", fallback = OrderInnerFallbackService.class) 2 public interface OrderInnerService { 3 }
這是我使用接口的controller部分代碼
public class XXXController { @Qualifier("order-server") @Autowired OrderInnerService orderInnerService; }
我的springboot啟動類:
@EnableFeignClients @EnableEurekaClient @SpringBootApplication @EnableCircuitBreaker @EntityScan("xxxxxxx") @EnableJpaRepositories(basePackages ={"xxxxxxx"}) public class XXXApplication { public static void main(String[] args) { SpringApplication.run(XXXApplication.class, args); } }
我的程序打包和運行沒有任何問題,就是idea中一直報紅
我在網上查了各種解決辦法,基本上是 把idea中關於注入的檢查關掉
后來我又去idea官網的bug里面找了找,發現在2021.1EAP版本中是有這個bug的
bug集合:
具體bug:
https://youtrack.jetbrains.com/issue/IDEA-233806
但是這個bug被標注為已解決,
這個人和我碰到的問題幾乎一樣,然后他列出了自己的系統參數,但是沒有列出自己使用的springcloud的版本
我的springcloud版本是:
Hoxton.SR11
通過查閱
@FeignClient
的源代碼,可知在此版本中, qualifiers[]數組代替了 qualifier ,而qualifier被標記為 @Deprecated
so 問題知道了
測試:
我把上面的feignclient中的 qualifiers 改為了 qualifier 發現不報紅了.問題解決
所以,最終得出結論:這是一個idea的一個bug,你不管他也可以,你關掉代碼檢查也可以.
我也向idea官方提了一個issue:
https://youtrack.jetbrains.com/issue/IDEA-276526
希望官方可以解決.
借用stackoverflow上的一句話來結尾:
Always remember...
Man is always greater than machine.