简单使用Feign

一:如何使用feign

1.消费者的启动类加上@EnableFeignClients注解

2.导入依赖

<!--Spring Cloud OpenFeign Starter -->
       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.1.2.RELEASE</version>
        </dependency>

3.创建feign接口

@Component
@RequestMapping("/miniprogram/message")
@FeignClient("${sc.app-name}-sc-miniprogram")
public interface MiniprogramClient {
    @PostMapping("/miniprogram/send")
    public Result sendMessageMiniprogram(@RequestBody JSONObject jsonData);
}

@FeignClient(“${sc.app-name}-sc-miniprogram”) 注解为生产者服务名称
@RequestMapping(“/miniprogram/message”)
@PostMapping(“/miniprogram/send”) 这两个注解为生产者接口

4.yml配置

# 使用openfeign的默认配置设置, 由于openfeign的默认链接时间 2s 以及响应时间 3s,根据业务的需要进行调整
feign:
  hystrix:
    enabled: false
  httpclient:
    enabled: true
  okhttp:
    enabled: false
  client:
    config:
      default: #这里就是指的所有被加载的默认FeignClient实现的服务配置都生效
        connectTimeout: 5000
        readTimeout: 5000

5.可以开启feign日志

#在application.yml中使用 logging.level.<Feign客户端对应的接口的全限定名> 的参数配置格式来开启指定客户端日志
logging:
  level:
    com.bjpowernode.feign: debug

二:feign原理

1、将feign接口的代理类扫描到Spring容器中:
        @EnableFeignClients开启feign注解扫描:FeignClientsRegistrar.registerFeignClients()扫描被 @FeignClient标识的接口生成代理类,并把接口和代理类交给Spring的容器管理。
2、为接口的方法创建RequestTemplate
        当consumer调用feign代理类时,代理类会调用SynchronousMethodHandler.invoke()创建RequestTemplate(url,参数)
3、发出请求
        代理类会通过RequestTemplate创建Request,然后client(URLConnetct、HttpClient、OkHttp)使用Request发送请求
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值