openFeign的使用

openFeign介绍

OpenFeign是一种声明式、模板化的HTTP客户端(仅在Application Client中使用)(称OpenFeign作用:声明式服务调用)。声明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程http请求。

一 服务方操作

1 添加依赖

添加了Spring Boot和Spring Cloud版本声明。
添加了web环境和eureka client依赖

2 编写配置

必须要有应用程序名,因为OpenFeign是通过应用程序名进行调用。

spring.application.name=applicationservice

二 客户端操作

1 添加依赖

比application service项目多了openfeign的依赖

2 编写配置

spring.application.name=applicationclient
server.port=8081

3 新建OpenFeign接口

OpenFeign接口命名:
调用应用程序+Feign
新建了com.bjsxt.feign.ApplicationServiceFeign。
注意:
@FeignClient 参数要写调用的Application Service的应用程序名
@RequestMapping中值要和需要调用的控制器方法URL相同
方法返回值要和调用控制器方法返回值相同。
方法名称随意,没有要求。

@FeignClient("APPLICATIONSERVICE")
public interface ApplicationServiceFeign {
    @RequestMapping("/service1")
    String suiyi();
}

4 调用

在实现类中直接注入OpenFeign接口对象即可。没有在启动类上添加@EnableFeignClients时此处可能会报编译错误。

三 OpenFeign访问带有参数的控制器

1 简单参数applicationclient中Feign接口添加方法

@RequestParam注解必须有
如果Feign接口方法参数名和调用控制器参数名相同可以省略@RequestParam的参数。

@RequestMapping("/service2")
String suiyi2(@RequestParam("name") String name123,@RequestParam int age)

2 传递请求体数据

如果Feign接口中方法参数没有写注解,表示把该参数值设置到请求体中,在Application Service方参数必须添加@RequestBody接收。
但是由于请求体数据特性,Feign接口方法最多只能出现一个不带有注解的参数。否则出现违法状态异常。

@RequestMapping("/service3")
public String service3(@RequestBody Map<String,Object> map){
    System.out.println(map);
    return map.toString();
}

@RequestMapping("/service4")
public String service4(@RequestBody String name){
    System.out.println("name:"+name);
    return "name:"+name;
}

3 Restful方式

由于SpringMVC支持Restful请求方式,所以在Feign接口中可以按照restful传递参数

@RequestMapping("/service5/{name}/{age}")
public String service6(@PathVariable String name,@PathVariable int age){
    return name+","+age;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenFeign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得更加容易。通过使用OpenFeign,我们可以定义一个接口用于调用远程Web服务,然后在运行时生成一个实现该接口的代理类。 以下是使用OpenFeign的步骤: 1. 添加依赖 在Maven项目中,我们需要添加以下依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> ``` 2. 创建Feign客户端接口 定义一个接口,用于调用远程Web服务。该接口通常会使用Spring MVC注解来定义请求路径、请求参数等信息。 ```java @FeignClient(name = "service-name") public interface MyFeignClient { @RequestMapping(value = "/api/resource", method = RequestMethod.GET) Resource getResource(@RequestParam("id") Long id); } ``` 其中,@FeignClient注解用于定义Feign客户端的名称,name属性指定了远程服务的名称。@RequestMapping注解则用于定义请求路径和请求方法。 3. 注入Feign客户端 在需要调用远程服务的地方,我们可以通过@Autowired注解来注入Feign客户端。 ```java @RestController public class MyController { @Autowired private MyFeignClient myFeignClient; @GetMapping("/resource/{id}") public Resource getResource(@PathVariable Long id) { return myFeignClient.getResource(id); } } ``` 这里,我们将Feign客户端注入到了控制器中,在控制器中调用了getResource方法。 4. 配置Feign客户端 我们可以通过配置文件来配置Feign客户端的行为。例如,我们可以配置连接超时时间、读取超时时间等。 ```yaml feign: client: config: default: connectTimeout: 5000 readTimeout: 5000 ``` 这里,我们将连接超时时间和读取超时时间都设置为了5秒。 以上就是使用OpenFeign的基本步骤,它使得调用远程Web服务变得更加容易。同时,OpenFeign还提供了很多高级特性,例如请求拦截器、响应拦截器等,可以帮助我们更好地管理Web服务客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值