1. 程式人生 > 程式設計 >SpringCloud Feign的使用程式碼例項

SpringCloud Feign的使用程式碼例項

1.官方文件

https://cloud.spring.io/spring-cloud-static/spring-cloud-openfeign/2.2.2.RELEASE/reference/html/

2.新增依賴

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

3.新增啟動類註解

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
//@MapperScan("cn.ytheng.order_service")
@EnableFeignClients
public class OrderServiceApplication {

  public static void main(String[] args) {

    SpringApplication.run(OrderServiceApplication.class,args);
  }

}

4.新增Feign介面

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 
 * 商品服務客戶端
 * product-service: 呼叫服務名稱,即spring.application.name
 * 
 */
@FeignClient(name = "product-service")
public interface ProductClient {

  @GetMapping("/api/v1/product/find")
  String getById(@RequestParam("id") int id);

}

5.新增Controller

import cn.theng.order_service.service.ProductClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1/order")
public class ProductOrderController {

  @Autowired
  private ProductClient productClient;

  @PostMapping("/test2")
  public Object test2(@RequestParam("product_id") int productId) {

    String product = productClient.getById(productId);

    return "success";
  }
}

6.新增application.yml配置

server:
 port: 8781
eureka:
 client:
  serviceUrl:
   defaultZone: http://localhost:8761/eureka/

spring:
 application:
  name: order-service


#設定呼叫服務超時時間
#product-service為服務名稱,也可以設定為預設值default
feign:
 client:
  config:
   product-service:
    connectTimeout: 5000
    readTimeout: 11000

7.訪問地址

SpringCloud Feign的使用程式碼例項

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。