zoukankan      html  css  js  c++  java
  • 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.访问地址

  • 相关阅读:
    【JZOJ6409】困难的图论
    学习LCT小结
    jzoj5432. 【NOIP2017提高A组集训10.28】三元组
    jzoj6367. 【NOIP2019模拟2019.9.25】工厂(factory)
    jzoj6366. 【NOIP2019模拟2019.9.25】化学(chem)
    jzoj5433. 【NOIP2017提高A组集训10.28】图
    学习拓展中国剩余定理小结
    jzoj6300. Count
    jzoj3736. 【NOI2014模拟7.11】数学题
    jzoj6276. 【noip提高组模拟1】树
  • 原文地址:https://www.cnblogs.com/tianhengblogs/p/12483984.html
Copyright © 2011-2022 走看看