OpenFeign客户端

一、介绍

  • SpringCloud第一代采用feign,第二代采用OpenFeign
  • OpenFeign是一个Web声明式的Http客户端调用工具,提供接口和注解形式调用。底层封装的是httpclient技术
  • Openfeign是springCloud自己研发的。而feign是netflix研发的,自2016年之后不再维护了

二、使用时的注意事项

  • 如果请求参数中没有指定注解的话,默认发送的是post请求。所以如果要发get请求,需要在参数上加@RequestParam注解
  • feign客户端支持负载均衡,用的ribbon
  • 在微服务中服务的名称不能带下划线
1
2
3
4
5
6
7
8
9
10
@FeignClient("tinner-member")
public interface UserServiceFeign {
/**
* 提供发布接口
* @param userId
* @return
*/
@GetMapping("/getUser")
String getUser(@RequestParam("userId") Integer userId);
}

三、项目结构

项目结构

四、代码

1、父pom文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--服务注册与发现-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
</dependencies>
2、会员服务接口UserService
1
2
3
4
5
6
7
8
9
10
11
public interface UserService {

/**
* 提供会员接口
*
* @param userId
* @return
*/
@GetMapping("/getUser")
String getUser(@RequestParam("userId") Long userId);
}
3、会员服务实现类UserServiceImpl
1
2
3
4
5
6
7
8
9
@RestController
public class UserServiceImpl implements UserService {

@Override
public String getUser(Integer userId) {
return "我是会员服务";
}
}

4、订单服务OrderServiceImpl
1
2
3
4
5
6
7
8
9
10
11
12
@RestController
public class OrderServiceImpl {

@Autowired
private UserServiceFeign userServiceFeign;

@RequestMapping("/orderFeignToUser")
public String orderFeignToUser(){
String user = userServiceFeign.getUser(1);
return "我是订单服务调用会员服务的接口,返回结果:"+ user;
}
}
5、feign客户端
1
2
3
4
5
6
7
8
9
10
@FeignClient("tinner-member")
public interface UserServiceFeign {
/**
* 提供发布接口
* @param userId
* @return
*/
@GetMapping("/getUser")
String getUser(@RequestParam("userId") Integer userId);
}

五、运行效果

项目结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值