微服务开发---------Feign的远程调用与自定义配置

本文介绍了如何在SpringBoot项目中使用Feign解决RestTemplate的问题,包括添加依赖、配置Feign客户端、请求定义以及自定义日志配置。Feign提供了一种更简洁、可读性更强的HTTP请求发送方式,并具备负载均衡功能。
摘要由CSDN通过智能技术生成

第二天d:

Feign远程调用:

在RestTemplate中,我们遇到了以下几个问题。

1.代码可读性差,编码体验不统一。

2.参数复杂,url难以维护。

所以我们要用到Feign。

Feign的介绍:

Feign是一个声名式的HTTP客户端,,官方地址:http://github.com/OpenFeign/feign。

它的作用就是可以让我们优雅的发送http请求。

定义和使用Feign客户端:

1.在pom中加入依赖:

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

2.在启动类中加入注解,开启Feign功能。 

@EnableFeignClients
@SpringBootApplication
public class OrderApplication{

    public static void main(String args[]){
        SpringApplication.run(OrderApplication.class, args);
    }
}

 3.编写Feign客户端:

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

这里的几个参数:

1.服务名称:userservice

2.请求方式:GET

3.请求路径:user/{id}

4.请求参数:Long id

5.返回值:User

4.这时就可以在消费端服务直接进行调用
public class OrderService{

   @Resource
   private UserClient userClient;

   @Resource
   private OrderMapper ordermapper;

   public Order queryOrderById(Long orderId){

      //1.查询订单。
      Order order = orderMapper.getById(orderId);

      //2.远程调用。
      User user = userClient.findById(order.getUserId);

      //3.封装order
      order.setUser(user);

      //4.返回order
      return order;
}




注:Feign也已经默认有负载均衡的功能。(ribbon)

自定义Feign配置:

Feign运行自定义配置来覆盖默认配置,可以修改以下配置。

一般使用的配置都是日志级别的。

自定义配置:

1.方法一:配置文件方式:

全局生效:

feign:
  client:
    config:
      default: #这里的default就是全局注册,如果是写服务名称,则是对某个微服务的配置。
        loggingLevel:FULL#日志级别

 局部生效:

feign:
  client:
     config:
       userService: 
         LoggingLevel:FULL #日志级别

2.方法2:

1.编写Java代码,先编写一个Bean:
public class FeignClientConfiguration{
      @Bean
      public Logger.Level feignLogLevel(){
            return logger.level.BASIC;
      }
}
2.如果是全局注册:放在@EnableFeignClients:
@EnableFeignClients(defaultCongiguration = FeignClientConfiguration.class)
3.如果是局部注册:放在@FeignClient:
@FeignClient(Value ="userservice",configuration = FeignClientConfiguration.class)

这里仅仅对日志进行了配置改变!如果对其他配置要进行改变,同理!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值