您当前的位置: 首页 > 

梁云亮

暂无认证

  • 6浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

OpenFeign3入门

梁云亮 发布时间:2022-10-12 10:45:23 ,浏览量:6

简介

OpenFeign 是 Spring Cloud 家族的一个成员, 它最核心的作用是为 HTTP 形式的 Rest API 提供了非常简洁高效的 RPC 调用方式。

  • openfeign的用途: 服务发现,负载均衡,服务调用

  • openfeign的实现原理: 基于@EnableFeignClients 将所有被@FeignClient注解的类 注册到容器中。当这些被@FeignClient注解的类被调用时会创建一个动态代理的对象为我们创建被调用类的实例,然后都会被统一转发给 Feign 框架所定义的一个 InvocationHandler , 由该 Handler 完成后续的 HTTP 转换, 发送, 接收, 翻译HTTP响应的工作。

示例 第一步:添加依赖

    org.springframework.cloud
    spring-cloud-starter-openfeign
    3.0.1

第二步:编写调用接口
@ComponentScan
//name:指定调用Rest接口所对应的服务名
//path:指定要调用的Rest接口所在的项目的context-apth,如果Rest接口所在的项目有指定conext-path,则不用指定
@FeignClient(name = "nacos-payment",path = "/payment")
public interface PaymentFeignService {
    //声明Rest接口需要调用的方法
    @GetMapping("/nacos/{id}")
    String getPayment(@PathVariable("id") Integer id);
}
第三步:发起调用,像调用本地方式一样调用远程服务
@RestController
@RequestMapping("/order")
public class OrderController {
    @Resource
    private PaymentFeignService paymentFeignService;

    @GetMapping("/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id) {
        return paymentFeignService.getPayment(id);
    }
}
第四步:在主启动类上添加@EnableFeignClients注解
@EnableFeignClients
@SpringBootApplication
public class Consumer9002Application {

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

}
第五步:运行测试
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

3.4868s