spring cloud feign没法注入service

spring cloud 消费端使用feign实现。
定义了一个接口

package org.noak.facade.provider
@FeignClient(value = Constants.SERVICE_PROVIDER)
public interface UserService {
    @RequestMapping(value = "/user/get/{id}", method = RequestMethod.GET)
    Object getUser(@PathVariable("id") String id);

}

启动类Application所在包 org.noak.facade
此时启动没有任何问题,可以正常调用!

change :

UserService  不变,不过他的包被我挪到了org.noak.api.provider
启动类上面加上@ComponentScan(basePackages={"org.noak"})

就在这时,service没有办法被注入了。这时为啥捏?

我猜问题是不是处在@FeignClient 上?

这时报错信息:

Field userService in org.noak.facade.controller.UserController required a bean of type 'org.noak.api.provider.UserService' that could not be found.
阅读 26.5k
3 个回答

睡了一觉,今天突然灵光乍现,果然和FeignClient注解有关。

因为在启动类上使用EnableFeignClients来开启Feign的功能。然后我看了下EnableFeignClients也有个basePackages,配置上{"org.noak"}启动后测试,成功了。

ps: 如果有fallback 需要 加上@ComponentScan(basePackages={"org.noak"}) 才能启动

新手上路,请多包涵

困扰我3天的问题终于解决了,谢谢博主!

新手上路,请多包涵

这个问题困扰了我一整天,终于解决了,谢谢博主

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题