解决方案:微服务远程调用组件Feign的使用详解

优采云 发布时间: 2022-11-25 18:38

  解决方案:微服务远程调用组件Feign的使用详解

  一、总结

  我们知道目前最火、技术含量最高的技术就是SpringCloud微服务,那么今天一哥就带大家了解一下微服务的核心组件之一,Feign的基本使用及其工作机制。

  二、Feign简介 一、概念

  在学习如何使用Feign之前,我们先来了解一下什么是Feign。

  Feign 是 Netflix 开发的声明式(目前由 Spring 维护)和模板化的 HTTP 客户端。Feign可以帮助我们更快速优雅的调用HTTP Api。

  简单来说,Feign是一个远程服务调用的框架/工具,可以让开发者以更低耦合、更少代码、更快、更兼容的方式进行远程服务调用。

  2.功能

  了解了这些基本概念之后,接下来小编就带大家看看Feign组件是如何实现远程接口调用的。话不多说,我们直接上代码。

  三、服务提供者 1、添加依赖

  首先我们在父POM文件中添加核心依赖,如下:

  

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba-dependencies.version}

pom

import

  然后在子POM文件中添加依赖如下:

  

org.springframework.cloud

spring-cloud-starter-openfeign

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

  2.配置文件

  在 application.yml 文件中添加如下配置:

  server:

port: 8090

spring:

application:

name: nacos-feign-example

cloud:

nacos:

discovery:

server-addr: 112.74.42.138:8848

  3、创业班

  项目的启动类代码如下:

  @SpringBootApplication

public class NetflixFeignProviderApplication {

public static void main(String[] args) {

SpringApplication.run(NetflixFeignProviderApplication.class, args);

}

}

  4.控制层

  我们可以写一个Controller控制器,定义web界面如下。

  @RestController

@RequestMapping("/user")

@Slf4j

public class UserController {

/**

* 模拟主键自增

*/

private AtomicInteger pk = new AtomicInteger();

<p>

" />

@PostMappingpublic User save(@RequestBody User user) {

user.setUid(pk.incrementAndGet());

return user;

}

/**

* @param uid

* @return

*/@GetMapping("/{uid}")

public User user(@PathVariable("uid") int uid) {

return User.builder()

.uid(uid)

.username("admin")

.password("123456")

.build();

}

@GetMapping("/users")

public List users(@RequestHeader("token") String token) {

// 模拟从数据中获取数据

ArrayList users = new ArrayList();

for (int i = 1; i

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线