zoukankan      html  css  js  c++  java
  • 008 Feign的客户端调用

    一 .概述

    在之前我们使用的Ribbon和RestTemplate帮助我们实现微服务的调用,但是这种方式我们需要自己维护很多的URl信息,springcloud整合Feign帮助我们实现一种声明式的调用.

    二 .环境搭建

    [1]引入依赖

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

    [2]编写Feign的接口

    @FeignClient("cloud-producer")
    public interface UserFeign {
        
        @GetMapping("/user/{id}")
        User queryUserByid(@PathVariable("id") int id) ;
    }

    其实从上面的接口之中,我们就能发现实际上我们就是伪造了一个接口,包括微服务的名称和URL信息.

    [3]启动类

    @SpringBootApplication
    @EnableEurekaClient
    @EnableFeignClients
    @RibbonClient(value="cloud-producer",configuration=RibbonConfig.class)
    public class ConsumerStarter {
        
        public static void main(String[] args) {
            SpringApplication.run(ConsumerStarter.class, args);
        }
        
        @Bean
        @LoadBalanced
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    }

    我们添加了一个注解,表示启动Feign的接口代理.

    @RestController
    public class UserController {
    
        @Resource
        private UserFeign feign;
        
    
        
        @GetMapping("user/{id}")
        public User queryUser(@PathVariable("id") int id) {
            return feign.queryUserByid(id);
        }
    }

    现在我们调用微服务的时候,直接使用Feign接口就可以直接调用了.

  • 相关阅读:
    ajax专题
    luogu P1346 电车 最短路
    luogu P1462 通往奥格瑞玛的道路 最短路
    luogu P1328 生活大爆炸版石头剪刀布
    luogu P1315 联合权值 枚举
    luogu P1156 垃圾陷阱 背包问题
    luogu P1217 回文质数 枚举
    luogu P3650 滑雪课程设计 枚举
    luogu1209 修理牛棚 贪心
    luogu P1223 排队接水 贪心
  • 原文地址:https://www.cnblogs.com/trekxu/p/10468115.html
Copyright © 2011-2022 走看看