使用FeignClient从外部服务获取数据

时间:2020-08-05 07:42:31

标签: spring-boot spring-cloud spring-cloud-feign

我正在尝试从外部服务获取数据并将其放入数据库中。

@FeignClient(value = "name-feign", url = "http://localhost:8081")
public interface Client{

    @PostMapping("/Efforts")
    List<EffortsResponse> getAllEfforts();

}

我在我的应用程序中添加了@EnableFeignClients批注。我知道假装客户会做什么。

什么是最好的方法?

1 个答案:

答案 0 :(得分:2)

您可以将feign clientrepository注入service

service中应该有一个像这样的方法:

@Service
public class Service {
  private final Client client;
  private final Repository repository;

  public Service(Client c, Repository r) {
    this.client = c;
    this.repository = r;
  }

  public yourMethod() {
    List<EffortsResponse> items = client.getAllEfforts();
    //some transformation: items => entities
    respository.saveAll(entities);
  }
}