FeignClient注解常见的异常NoSuchBeanDefinitionException: No qualifying bean of type

常见异常:

NoSuchBeanDefinitionException: No qualifying bean of type

只要是新增@FeignClient引起的,只要在SpringBoot的启动类上添加@EnableFeignClients注解就能解决,但是注意如下:

1、@FeignClient所在的包路径不从属于Application.java所在的package时,会导致feign调用不,必须在@EnableFeignClients中指定路径;

2、@EnableFeignClients中一旦指定了basePackages,默认从属于Application.java所在的package的@FeignClient所在的包路径也要指定;

3、一般情况下,项目中需要对外暴露Rest接口,定义的Api接口都是从属于Application.java所在的package;如果调用第三方的Rest接口,方案1是引入对方的jar包,然后在@EnableFeignClients中指定路径;方案2是不引入对方包,在代码中自定义接口(包路径可控,第三方包拷贝过来即可),毕竟说到底底层都是Http调用;我们指定@EnableFeignClients注解中的路径是为了Springboot的自动装配和Bean托管用的。

4、定义@FeignClient的时候,常用openfeign或者是netflix.feign的包,项目中会出现两个共存的情况,导致Springboot托管Bean有问题,处理的方案就是:统一以本项目为准,比如项目中使用了openfeign,如果引入第三方包是netflix.feign,则不引入依赖包,直接重写对方接口(拷贝对方代码到项目中,修改@FeignClient依赖包即可);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章