这两天装了新版的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
希望官方可以解决.
借用*上的一句话来结尾:
Always remember...
Man is always greater than machine.