springcloud中的Feign调用

目录

一、基础应用

1.feign使用

1.增加feign依赖

2.编写feign接口

3.启用feign

4.调试

5.可能出现的异常信息

1.404

可能原因:

2.503

可有原因: 

2.feign自定义配置

1.创建Feign配置类

2.feign接口

3.调试结果

3.feign多参数请求


 

Feign是Netflix开发的声明试、模版化的HTTP客户端,它调用HTTP API更加便捷优雅。

一、基础应用

1.feign使用

1.增加feign依赖

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

2.编写feign接口

@FeignClient(name = "microservice-provider-user")
public interface UserFeignClient {
    @PostMapping("/api/user")
    String find();
}

@FeignClient注解的 name 是指定FeignClient的名称,如果项目使用了Ribbon\Consul等,name属性会作为微服务的名称,用于服务发现。还可以使用url可以手动指定@FeignClient调用的地址。

3.启用feign

启动类增加 @EnableFeignClients 注解

4.调试

    @PostMapping("/serviceInstance")
    public String serviceInstance() {
        return userFeignClient.find();
    }

结果:

[{"id":1,"username":"account1","name":"张三","age":20,"balance":150.00},
{"id":2,"username":"account2","name":"李四","age":25,"balance":350.00},
{"id":3,"username":"account3","name":"王五","age":28,"balance":450.00}]

5.可能出现的异常信息

1.404
feign.FeignException$NotFound: [404] during [GET] to [http://microservice-provider-user/user] [UserFeignClient#captchaImage()]: [<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} ... (431 bytes)]
### Spring Cloud Feign 调用使用指南 #### 引入依赖 为了在项目中集成Feign,需引入`spring-cloud-starter-openfeign`依赖。此操作使得应用程序能够利用Feign的功能来简化HTTP请求的发起过程[^3]。 ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> ``` #### 启动类配置 为了让应用识别并启用Feign客户端功能,在启动类上应添加`@EnableFeignClients`注解。这一步骤对于激活Feign的支持至关重要。 ```java @SpringBootApplication @EnableFeignClients public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 编写Feign客户端接口 定义一个接口作为Feign客户端的具体实现形式。通过该接口可以像本地方法一样调用远程服务中的API端点。下面的例子展示了如何创建一个用于获取用户的Feign客户端: ```java @FeignClient("userService") public interface UserClient { @GetMapping("/user/{id}") User findById(@PathVariable("id") Long id); } ``` 此处,“userService”代表目标微服务的名字;`findById`函数则映射到对应的服务路径,并接收参数以完成特定资源的查询动作。 当上述步骤完成后,即可按照常规的方式注入和使用这个Feign客户端实例来进行跨服务的数据交互了。值得注意的是,由于Feign内部集成了Ribbon负载均衡器,因此可以直接依据服务名称访问其他节点而不需要关心具体的网络地址信息[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DN金猿

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值