feign 接口有实现类,调用的时候走哪个
时间: 2024-04-13 16:27:41 浏览: 19
在使用Feign进行远程接口调用时,Feign会根据接口定义自动生成代理类。这个代理类实现了你的接口,并且封装了远程调用的逻辑。
当你调用Feign接口方法时,实际上是调用了生成的代理类的对应方法。代理类会将请求转发给远程服务,并处理返回结果。
所以,当你调用Feign接口方法时,实际上是走的代理类。代理类负责将请求发送到远程服务并处理返回结果。你不需要关心具体的实现类,Feign会自动帮你处理这些细节。
相关问题
feign接口和feignClient实现类有什么用
Feign是一个声明式的Web服务客户端,通过注解方式定义HTTP请求,从而简化了使用Spring Cloud Ribbon进行负载均衡的操作。Feign接口和FeignClient实现类是Feign的两个重要概念,它们的作用如下:
1. Feign接口:定义了客户端要访问的服务接口,包括接口的请求方式、请求参数、请求路径等信息。
2. FeignClient实现类:实现了Feign接口,其中的方法对应了Feign接口中定义的服务接口。FeignClient可以通过注解的方式配置服务的名称、请求路径、请求参数等信息,并且可以使用Spring Cloud Ribbon进行负载均衡。
综上所述,Feign接口和FeignClient实现类的作用是定义和实现客户端对服务端的访问,使得客户端可以通过简单的注解方式调用服务端的接口,从而简化了客户端的开发工作。
feign接口调用服务的端口怎么确定
Feign是一个基于接口的声明式HTTP客户端,它的底层实现是通过动态代理技术生成接口的实现类,在调用接口方法时会根据注解中的请求地址、请求方法、请求参数等信息动态生成HTTP请求发送给服务端。
在Feign中,接口的请求地址可以通过@FeignClient注解中的value属性指定,例如:
```
@FeignClient(value = "service-provider")
public interface UserClient {
@GetMapping("/user/{id}")
User getUserById(@PathVariable("id") Long id);
}
```
上面的例子中,@FeignClient注解中的value属性指定了服务提供者的名称为"service-provider",Feign在发送HTTP请求时会自动将请求转发到该服务提供者的一个实例上。
而服务提供者的端口则是由服务提供者在启动时自己指定的,通常可以在服务提供者的配置文件中通过server.port属性进行配置。因此,在使用Feign调用服务接口时,需要确保服务提供者的端口与Feign接口中指定的服务提供者名称对应。