springcloud项目中feign远程调用,标注@FeignClient的接口实例化失败。
-
服务提供方:
image.png
-
对外暴露远程调用接口的api工程:
image.png
image.png -
调用方:
image.png
原因是调用方的启动类UserApplication所在的包路径是com.mall.user,他会自动加载此路径下的bean。
而feign的配置文件FeignConfig所在路径是com.mall.goods包下,即使user工程引用了goods_api工程,也无法加载到feign的配置文件。
-
解决办法:使用spi机制,使spring初始化容器的时候加载指定目录下的bean
image.png
加载完FeignConfig的时候会解析其标注的@EnableFeignClients注解,会加载此注解下的basePackages对应路径下的bean
网友评论