@FeignClient必须指定url才能找到服务,为什么?

新手上路,请多包涵
@FeignClient(name = "passport-service", url = "http://100.66.178.33:8089/passport")
public interface PassportServiceApi {
@RequestMapping(value = "/api/auths/token/{username}", method = RequestMethod.GET)
    AbstractResult getTokenByUsername(@PathVariable("username") String username);
}

上面的代码为什么必须制定url才能找到服务?如果不指定url就报404的问题,不指定url时跟踪代码发现最后生成的地址是/api/auths/token/,并没有加上域名。

阅读 9k
2 个回答
新手上路,请多包涵

你这个问题我也遇到了,现在服务器上面就是直接写的url了,不知道怎么处理!

新手上路,请多包涵

当不指定URL时,Feign会使用默认的URL生成规则。默认情况下,Feign会将接口名作为服务名,并将方法名作为路径。在这个例子中,接口名为"PassportServiceApi",方法名为"getTokenByUsername"。因此,默认生成的URL将是"/api/auths/token/getTokenByUsername"。但是,这个URL没有包含域名,所以会出现404错误。

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