• 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接口就可以直接调用了.

  • 相关阅读:
    Django数据库 相关之select_related/prefetch_related
    Django 序列化
    Django 信号
    Django缓存配置和使用
    Django FBV/CBV、中间件、GIT使用
    学员管理系统(SQLAlchemy 实现)
    Oracle的三种高可用集群方案
    linux系统安装硬盘分区建议
    Linux下expdp自动备份
    impdp导入报错ORA-39070:无法打开日志文件
  • 原文地址:https://www.cnblogs.com/trekxu/p/10468115.html
Copyright © 2020-2023  润新知