Java Feign的创建及配置

本文介绍了Feign在SpringCloud中的应用,如何作为声明式Web服务客户端实现微服务间的负载均衡、容错和高效通信,包括服务提供方接口定义、Feign微服务搭建以及消费者微服务的调用过程。

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

简介:Feign是一个声明式的Web服务客户端,它基于Netflix的Ribbon库和Spring Cloud的服务功能,可以自动地将请求转发到多个微服务之间,并提供负载均衡、容错和缓存等功能,简而言之,就是可以实现多个微服务之间进行可靠、高效通信。

一、需要有服务提供方(例如:微服务1中某个方法需要向其他微服务提供接口)

    @GetMapping("/lkm/{code}/{name}")
    public List<实体> List(@PathVariable(required = false) String code
            , @PathVariable(required = false) String name{
        List<实体> list= xxService.getList(code, name);
        return list;
    }

二、Feign 微服务搭建

1、在POM文件引入依赖:

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

2、分别创建两个文件:

首先,需要创建xxxFeign文件和 xxxProvider文件,该文件最好在两个目录下,例如可以将xxxFeign放在feign目录里,将xxxProvider放在api里。

@Component
@FeignClient(name = "微服务1的项目名", url="localhost:微服务1端口号")
public interface xxxFeign extends xxxProvider {
}

这里的Object直接对应微服务1的实体,省去再创建实体。

public interface xxxProvider {

 @GetMapping("/lkm/{code}/{name}")
 List<Object> dicItemTree(@PathVariable(required = false) String code
            , @PathVariable(required = false) String name;
}

注意:feign的参数不能为空。

三、消费者微服务2的调用

1、在POM文件引入依赖:

        <dependency>
            <groupId>com.xxx</groupId>
            <artifactId>Feign微服务名称</artifactId>
            <version>版本</version>
        </dependency>

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

2、启动类配置
启动类需要引用该注解

@EnableFeignClients()

3、调用方法具体实现

通过@Resource 在controller直接引用你所需xxxFeign ;

    @Resource
    private xxxFeign xxxFeign;
    
    @GetMapping("/mm")
    public List<Object> xxxTree(@PathVariable(required = false) String code
            , @PathVariable(required = false) String name;{
        return xxxFeign.getXXX(code,name);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

傻猴儿

小编,多谢客官留下的赏钱。

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

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

打赏作者

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

抵扣说明:

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

余额充值