FeignClient 远程调用其他模块api
时间: 2024-10-30 14:02:26 浏览: 27
FeignClient 是 Spring Cloud 中的一个轻量级远程服务调用库,它基于 Netflix 的 Hystrix 和 Ribbon。它的核心思想是将 API 客户端(通常是一个 RESTful 接口)封装成 Java 类,通过注解的方式声明对外的服务调用接口和URL,然后由 Feign 自动完成实际的网络请求。
当你需要从一个微服务模块调用另一个模块的 API 时,可以这样做:
1. **配置**:首先在调用方的`pom.xml`或`build.gradle`文件中添加Feign依赖。例如,在Spring Boot项目中添加`org.springframework.cloud:spring-cloud-starter-feign`。
2. **创建接口**:在调用方创建一个接口,这个接口定义了对目标API的调用方法,通常是HTTP方法(GET、POST等),并加上`@RequestMapping`注解指明API的URL。
```java
@FeignClient(name = "target-service", url = "http://localhost:8081") // 替换为你实际的目标服务地址
public interface TargetApi {
@GetMapping("/api/resource")
String getResource();
}
```
3. **注入使用**:在需要调用API的地方,直接注入该接口,并像调本地方法一样调用即可。
```java
@Service
class ServiceImpl implements YourLocalInterface {
private final TargetApi targetApi;
public ServiceImpl(TargetApi targetApi) {
this.targetApi = targetApi;
}
public void doSomething() {
String result = targetApi.getResource(); // 发起远程调用
// 使用结果
}
}
```
阅读全文