SpringBoot之使用Feign实现微服务间的交互

 更新时间:2023年03月29日 17:12:21   作者:JianYang100  
这篇文章主要介绍了SpringBoot中使用Feign实现微服务间的交互,对微服务这方面感兴趣的小伙伴可以参考阅读本文

准备工作

先看看我们已经构建好的两个项目

项目端口
eureka-pass7200服务发现与注册中心
user7101微服务:用户模块

因为现在要演示微服务与微服务之间的交互,而目前只有一个user微服务注册到eureka-pass,所以我们至少要再建一个微服务来进行演示。

新建项目的过程就不再演示了,跟建立user微服务类似,需要了解的可以翻看之前的文章。

下面只贴出application.yml的代码

application.yml

server:
  port: 7102 # 端口
spring:
  application:
    name: order   # 注册到Eureka Server显示的应用名称
 
eureka:
  client:
    serviceUrl:
      defaultZone: http://admin:admin135@localhost:7200/eureka/
  instance:
    prefer-ip-address: true  #将自己的IP注册到Eureka Server
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} #:${random.long(1,100)}

新建成功后项目列表如下:

项目端口
eureka-pass7200服务发现与注册中心
user7101微服务:用户模块
order7102微服务:订单模块

 依次启动eureka-pass、user、order  3个项目,启动成功后,访问:http://localhost:7200,输入账号密码(账号:admin    密码:admin135   上一节设置的),出现如下页面:

列表里面出现user和order两个微服务,表示两个微服务已经成功注册到eureka!一切准备就绪,我们可以开始接入Feign了!

接入Feign

假设有这样的场景:订单模块(order)需要获取某个订单中用户的详细信息,这时候订单模块(order)就必须请求用户模块(user)中的接口。

针对上述场景,实现方式之一就是把Feign整合进 订单模块(order),步骤如下:

1、用户模块(user)增加一个控制器,并编写一个接口,以供订单模块调用

2、订单模块(order)的pom中增加Feign依赖

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

3、订单模块(order)新增一个接口,并添加@FeignClient注解,如图

代码中value的值是指向用户模块(user)的路径,method表示请求方式 

4、订单模块(order)启动类增加 @EnableFeignClients注解,如下图

5、订单模块(order)增加一个控制器,并 编写一个接口,接口调用User模块的方法,代码如下:

package cn.laocheng.user.controller;
 
import cn.laocheng.user.feignClient.IUserFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class TestController {
 
    @Autowired
    IUserFeignClient userFeignClient;
 
    @GetMapping("/getInfo")
    public String getInfo(){
 
        String Str= userFeignClient.getInfo();
        return "调用User模块的接口:"+Str;
    }
}

6、测试

访问:http://localhost:7102/getInfo

浏览器显示:

总结

以上实现了feign的基本使用过程,我们在order微服务里使用feign调用了user微服务一个无参数的GET请求。

到此这篇关于SpringBoot之使用Feign实现微服务间的交互的文章就介绍到这了,更多相关使用Feign实现微服务间的交互内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring如何使用xml装配bean

    spring如何使用xml装配bean

    这篇文章主要介绍了spring如何使用xml装配bean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 解析Runtime中shutdown hook的使用详解

    解析Runtime中shutdown hook的使用详解

    本篇文章是对解析Runtime中shutdown hook的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • java中staticclass静态类详解

    java中staticclass静态类详解

    这篇文章主要介绍了java中staticclass静态类详解,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • springboot结合mybatis操作事务配置的处理

    springboot结合mybatis操作事务配置的处理

    在操作数据库的时候,经常会使用事务的处理,本文主要介绍了springboot结合mybatis操作事务配置的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • Mybatis中foreach的使用详解

    Mybatis中foreach的使用详解

    Mybatis中foreach标签的使用详解,包括属性说明、代码示例和总结,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 如何劫持Java应用的HTTP请求

    如何劫持Java应用的HTTP请求

    这篇文章主要介绍了如何劫持Java应用的HTTP请求,帮助大家针对部分特殊的流量,希望将它引导到特定服务上,感兴趣的朋友可以了解下
    2020-10-10
  • Maven中错误使用parent.relativePath导致构建失败问题

    Maven中错误使用parent.relativePath导致构建失败问题

    这篇文章主要介绍了Maven中错误使用parent.relativePath导致构建失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java读取Oracle大字段数据(CLOB)的2种方法

    Java读取Oracle大字段数据(CLOB)的2种方法

    这篇文章主要介绍了Java读取Oracle大字段数据(CLOB)的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Netty + ZooKeeper 实现简单的服务注册与发现

    Netty + ZooKeeper 实现简单的服务注册与发现

    服务注册和发现一直是分布式的核心组件。本文介绍了借助 ZooKeeper 做注册中心,如何实现一个简单的服务注册和发现。,需要的朋友可以参考下
    2019-06-06
  • Java如何使用Iterator迭代器删除集合重复选项

    Java如何使用Iterator迭代器删除集合重复选项

    这篇文章主要介绍了Java如何使用Iterator迭代器删除集合重复选项,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论