服务接口调用_OpenFeign概述

OpenFeign是什么


Spring Cloud OpenFeign用于Spring Boot应用程序的声明式REST 客户端。

 

OpenFeign能干嘛

Feign旨在使编写Java Http客户端变得更容易。前面在使用 RestTemplate时,利用RestTemplate对http请求的封装处理,形 成了一套模版化的调用方法 

OpenFeign和Feign两者区别

  • Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在 上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和 HttpMessageConverters。 
    FeignOpenFeign
    Feign是Spring Cloud组件中的 一个轻量级RESTful的HTTP服务 客户端Feign内置了Ribbon,用 来做客户端负载均衡,去调用服 务注册中心的服务。OpenFeign是Spring Cloud在Feign的基础上支持了 SpringMVC的注解,如@RequesMapping等等。OpenFeign 的@Feignclient可以解析SpringMVc的@RequestMapping注 解下的接口,并通过动态代理的方式产生实现类,实现类中做 负载均衡并调用其他服务。
    Spring-cloud-starter-feignspring-cloud-starter-openfeign

    注意: 接口+注解。

废话少说,直接撸代码

服务接口调用OpenFeign_入门案列

引入pom文件

<!-- 引入OpenFeign依赖 -->
<dependency>
  
<groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starteropenfeign</artifactId>
</dependency>

编写YML文件

eureka:
 client:
    # 表示是否将自己注册到Eureka Server
   register-with-eureka: true
    # 示是否从Eureka Server获取注册的服务信息
   fetch-registry: true
    # Eureka Server地址
   service-url:
     defaultZone:
http://eureka7001.com:7001/eureka,http://eur
eka7002.com:7002/eureka

编写主启动类
 instance:
   instance-id: cloud-openfeign-order-consumer
   prefer-ip-address: true
spring:
 application:
    # 设置应用名词
   name: cloud-openfeign-order-consumer
server:
 port: 80

注意:这里我是配置了eureka服务注册中心的,你们可以配置别的注册中心,也可以按照我的配

编写主启动类

/**
* 主启动类
*/
@Slf4j
@SpringBootApplication
#
@EnableFeignClients
public class OrderFeignMain80 {
    public static void main(String[] args) {
      
SpringApplication.run(OrderFeignMain80.clas
s,args);
        log.info("**************
OrderFeignMain80 服务启动成功 **********");
   }
}

编写业务逻辑接口PaymentFeignService

/**
 * 支付远程调用Feign接口
 */
@Component
@FeignClient(value = "cloud-paymentprovider")
public interface PaymentFeignService {
   @GetMapping("/payment/index")
   String index();
}

编写控制层Controller

/**
* 订单控制层
*/
@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private PaymentFeignService
paymentFeignService;
    /**
     * 测试OpenFeign接口调用
     * @return
     */
    @GetMapping("/index")
    public String get(){
        return paymentFeignService.index();
   }
}

服务接口调用OpenFeign_日志增强

OpenFeign虽然提供了日志增强功能,但是默认是不显示任何日志 的,不过开发者在调试阶段可以自己配置日志的级别。

OpenFeign的日志级别如下

  • NONE:默认的,不显示任何日志;
  • BASIC:仅记录请求方法、URL、响应状态码及执行时间;
  • HEADERS:除了BASIC中定义的信息之外,还有请求和响应的头信息;
  • FULL:除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据 

配置类中配置日志级别

@Configuration
public class OpenFeignConfig{
    
    /**
    * 日志级别定义
    */
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
   }
}

注意: 这里的logger是feign包里的。

yaml文件中设置接口日志级别

logging:
   level:
     com.itbaizhan.service: debug

注意: 这里的 com.itbaizhan.service 是openFeign接口所在的包名,当然你也 可以配置一个特定的openFeign接口。

测试 请求http://localhost/order/index

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哓拾柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值