1. 程式人生 > 其它 >feign遠端呼叫

feign遠端呼叫

一、Fegin的使用步驟如下

1.引入依賴

我們在order-service服務的pom檔案中引入feign的依賴:

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

2.添加註解

在order-service的啟動類添加註解(@EnableFeignClients)開啟Feign的功能:

3.編寫Feign的客戶端

在order-service中新建一個介面,內容如下:

import cn.itcast.order.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@FeignClient("userservice")
public interface UserClient {
    @GetMapping("/user/{id}")
    User findById(@PathVariable("id") Long id);
}

 

這個客戶端主要是基於SpringMVC的註解來宣告遠端呼叫的資訊,比如:

  • 服務名稱:userservice

  • 請求方式:GET

  • 請求路徑:/user/{id}

  • 請求引數:Long id

  • 返回值型別:User

這樣,Feign就可以幫助我們傳送http請求

4.測試

修改order-service中的OrderService類中的queryOrderById方法

    @Autowired
    private UserClient userClient;

    public Order queryOrderById(Long orderId) {
        // 1.查詢訂單
        Order order = orderMapper.findById(orderId);

        User user = userClient.findById(order.getUserId());

        order.setUser(user);
        // 4.返回
        return order;
    }