文章目录
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 之后,调用远程服务方法跟调用本地方法基本一致。