由idea springcloud项目,@FeignClient 注入时报红的问题而找到的bug

这两天装了新版的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集合:

https://confluence.jetbrains.com/display/IDEADEV/IntelliJ+IDEA+2021.1+EAP+%28211.4961.33+build%29+Release+Notes

具体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.

上一篇:FeignClient中name和url属性的作用


下一篇:@FeignClient注解属性