SpringCloud学习笔记day4(Feign使用步骤)

        1 Feign 介绍

Feign是一个声明式的http客户端,官方地址: https://qithub.com/OpenFeign/feign。其主要作用就是帮助我们优雅的实现http请求的发送,能够解决传统的使用RestTemplate方式调用存在的代码可读性差,编程体验不统一,以及多数复杂URL难以维护的问题。Feign的强大之处不止能够远程调用,同时还能实现负载均衡。

        2 使用步骤

1.引入Feign依赖,代码如下

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

2.在目标启动类中添加@EnableFeignClients注解开启Feign的功能

3.编写Feign客户端

package cn.itcast.feign.clients;


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

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

主要是基于SpringMVC的注解来卢明远程调用的信息,比如: 服务名称: userservice ● 请求方式: GET ● 请求路径: /user/{id} ● 请求参数: Long id ● 返回值类型: User

4.使用Feign客户端代替RestTemplate

        3 自定义Feign的配置

配置Feign日志有两种方式: 方式一:配置文件方式

1.全局生效:

2.局部生效

方式二:JAVA代码方式

首先声明一个bean:

public class DefaultFeignConfiguration {
    @Bean
    public Logger.Level logLevel(){
        return Logger.Level.BASIC;
    }
}

而后如果是全局配置,则把它放到@EnableFeignClients这个注解中:

@EnableFeignClients(defaultConfiguration = DefaultFeignConfiguration.class)

如果是局部配置,则把它放到@FeignClient这个注解中:

@FeignClient(value = "userservice" ,configuration = FeignClientConfiguration.class)
经验分享 程序员 微信小程序 职场和发展