• springcloud学习笔记:通过openFeign实现微服务接口远程调用


            本文主要介绍如何在springcloud中通过openFeign实现微服务接口远程调用。本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8。

    1、创建消费端项目

            打开idea新建项目,选择maven,创建springboot项目consumer-openfeign-order。

    2、pom文件配置

             在项目pom中引入如下依赖:

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.bootgroupId>
    4. <artifactId>spring-boot-starter-webartifactId>
    5. dependency>
    6. <dependency>
    7. <groupId>org.projectlombokgroupId>
    8. <artifactId>lombokartifactId>
    9. dependency>
    10. <dependency>
    11. <groupId>org.springframework.cloudgroupId>
    12. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    13. dependency>
    14. <dependency>
    15. <groupId>org.springframework.cloudgroupId>
    16. <artifactId>spring-cloud-starter-openfeignartifactId>
    17. dependency>
    18. dependencies>

      3、application.yml文件配置

            在项目resources文件夹下创建application.yml文件,并按如下内容进行配置:

    1. server:
    2. port: 80
    3. eureka:
    4. client:
    5. service-url:
    6. defaultZone: http://localhost:7001/eureka
    7. fetch-registry: true
    8. instance:
    9. instance-id: consumer-openfeign-order-${server.port}
    10. prefer-ip-address: true
    11. spring:
    12. application:
    13. name: consume-openfeign-order

     4、主应用类配置

             在项目src/main/java下创建主应用类 ConsumerOpenFeignOrderApplication.java,添加注解@EnableEurekaServer、@SpringBootApplication、@EnableFeignClients。

    1. @EnableEurekaClient
    2. @SpringBootApplication
    3. @EnableFeignClients
    4. public class ConsumerOpenfeignOrderApplication {
    5. public static void main(String[] args) {
    6. SpringApplication.run(ConsumerOpenfeignOrderApplication.class, args);
    7. }
    8. }

    5、远程微服务接口声明

            在项目src/main/java/service下创建远程微服务接口类PaymentClientService,其中PAYMENT-SERVER为支付服务的服务名称。

    1. @FeignClient(name = "PAYMENT-SERVER")
    2. public interface PaymentClientService {
    3. @GetMapping("/payment/get/{id}")
    4. CommentResult getById(@PathVariable(name = "id") Long id);
    5. }

    6、controller层调用

            在controller层可以通过PaymentClientService进行远程微服务接口调用,使用方法如下:

    1. @RestController
    2. @RequestMapping("/order")
    3. public class OrderController {
    4. @Resource
    5. private PaymentClientService paymentClientService;
    6. @GetMapping("/get/{id}")
    7. CommentResult getById(@PathVariable(name = "id") Long id) {
    8. return paymentClientService.getById(id);
    9. }
    10. }

    7、测试验证

            同时启动并运行项目eueka-server-7001、eueka-server-7002、payment-8001、payment-8002、consumer-openfeign-order。然后在postman中进行接口调用测试:

     


    新时代农民工 (QQ:277718357) 点击关注下方↓微信公众号:程序进阶之路,实时获取更多技术文章推送。

  • 相关阅读:
    【校招VIP】前端计算机网络之webSocket相关
    leetcode简单题25 N.112 路径总和 rust描述
    ​【原创】基于SSM的学院排课管理系统(排课管理系统毕业设计源代码)
    Git/Gitee零基础入门教程
    达梦DEM监控配置
    学生个人网页模板 学生个人网页设计作品 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计代做
    uniapp风险等级(三级)
    MySQL笔记 去除表中的重复数据
    flash attention的CUDA编程和二维线程块实现softmax
    java项目83期基于ssm的嘟嘟图片展览馆-毕业设计
  • 原文地址:https://blog.csdn.net/sg_knight/article/details/126017617