openFeign服务调用

本文介绍openFeign的设计原理及其在微服务架构中的应用。openFeign作为轻量级HTTP请求框架,通过模块化封装服务调用,简化了微服务间的通信。文章详细解释了openFeign如何通过动态代理实现接口调用,并提供了实践步骤,包括引入依赖、配置注解和创建服务调用接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

openFeign设计原理

openFeign是轻量级的Http请求框架,不再像restTemplate那样显式声明请求URL,参数,返回类型,直接通过模块化的思想,将服务调用层封装为一个模块,在controller层像调用普通service那样调用,相对更加直观。封装了Http调用流程,更适合面向接口化的变成习惯

传统http请求流程

类似httpclient,restTemplate,OkHttp都是如此

openFeign流程

在Feign 底层,通过基于面向接口的动态代理方式生成实现类,将请求调用委托到动态代理实现类,基本原理如下所示:

实践

引入依赖

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

主启动类加注解

@EnableFeignClients
@SpringBootApplication
@EnableEurekaClient //声明自己是eureka客户端
public class Order8102 {

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

}

服务调用层

@Component
@FeignClient(value = "PAYMENT8101")//声明服务名
public interface FeignService {

    @RequestMapping("/res/res")//controller方法的接口声明
    String create();
}

controller服务调用就想正常的调用service的方法即可

@RestController
@Slf4j
@RequestMapping("/get")
public class OrderController {

    @Autowired
    private FeignService feignClient;

    @RequestMapping("/get")
    public String create(){
        return feignClient.create();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值