微服务之Feign客户端-声明式REST调用

本文介绍如何在Spring Cloud项目中集成Feign客户端,实现服务间的HTTP API调用。通过配置依赖、创建FeignClient接口及启用FeignClients,可以轻松实现负载均衡的服务调用。

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

1、Feign

Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。
Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。

2、使用方式
2.1 正常使用

1)导入依赖

        <!--springboot 整合fegnin客户端-->
        <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

2)创建一个FeignClient接口

import com.lq.order.entity.Product;
import com.lq.order.fallback.OrderServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;
//注意:value:写服务的名称    XXMapping()填写的就服务提供者的spring mvc的url
@FeignClient(value = "service-product",fallback = OrderServiceFallback.class)
public interface OrderfeignClient {

    @GetMapping("/product")
    public List<Product> getAllProduct();

    @GetMapping("/product/{id}")
    public List<Product> getProductById(@PathVariable("id")Integer id);

}

3)改造OrderService
在这里插入图片描述
4) 在启动类中添加 @EnableFeignClients 注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableEurekaClient
@EnableHystrix
@EnableFeignClients
public class ServiceOrderApplication {

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


    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();//httpClient
    }

}

  1. 重启测试
    在这里插入图片描述
2.2设置统⼀的hystrix fallback接⼝
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值