5.使用openfeign调用远程服务

文章目录

1. openfeign简介

OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问HTTP请求。

2. 使用openfeign

1. 引入相关依赖

在使用到的服务中引入即可

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

2. 创建feign接口

// value=需要被调用的服务名
@FeignClient(value = "springboot-cloud-product")
public interface IProductFeign {

	// 这里是服务跟着的请求路径,完整路径,开头的斜杠不能少
    @RequestMapping("/product/selectOne/{pid}")
    Product selectOne(@PathVariable("pid") Integer pid);
}

3. 在主启动类上开启feign注解

加上 @EnableFeignClients 注解

代码:

@SpringBootApplication
@EnableDiscoveryClient // nacos注册注解
@EnableFeignClients // openfeign注解
public class OrderApp {
    public static void main(String[] args) {
        SpringApplication.run(OrderApp.class, args);
    }
}

4. 在调用feign接口处,使用自动注入

@Autowire
private IProductFeign productFeign;

然后它的使用就是跟普通接口的使用方法一致了。

@Autowired
private IProductFeign productFeign;

@GetMapping("addOne/{pid}")
public Order addOne(@PathVariable("pid") Integer pid) {
	// 就是接口的使用方法
    Product product = productFeign.selectOne(pid);
    // 业务...
}

用完openfeign 之后,调用远程服务方法跟调用本地方法基本一致。

上一篇:SpringCloud-2.0-周阳(9. 负载均衡 - OpenFeign)学习笔记


下一篇:SpringCloud H版2服务调用与服务降级(Ribbon、负载均衡、OpenFeign、Hystrix)