springboot整合openfeign

文章目录

    • 准备
    • 一、引入必要依赖
    • 二、写一个feign client并暴露到注册中心
      • 2.1 client
      • 2.2 开启Feign客户端功能
    • 三、别的服务引入IProductClient并调用方法
      • 3.1 建一个order-service,引入IProductClient所在模块
      • 3.2 注入IProductClient,并调用方法
    • 四、启动服务
    • 五、启动两个服务,访问端口
    • 六、目录结构

准备

  • 父工程pom文件参考spring-boot、spring-cloud、spring-cloud-alibaba的常用依赖的依赖声明及pom文件
  • springboot整合nacos参考springboot整合nacos

一、引入必要依赖

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

二、写一个feign client并暴露到注册中心

2.1 client

对应的controller方法为

@RestController
@RequestMapping("/product")
public class ProductController {@GetMapping("/list")public String list(){return "product list";}
}

IProductClient,用来让别的服务可以调用ProductController的对应方法。
value对应的是服务名

@FeignClient(value = "product-service",path = "/product")
public interface IProductClient {@GetMapping("/list")public String list();
}

2.2 开启Feign客户端功能

@EnableFeignClients(basePackages = "com.hdl.client")

否则会报错,bean找不到

Field productClient in com.hdl.controller.OrderController required a bean of type 'com.hdl.client.IProductClient' that could not be found.

三、别的服务引入IProductClient并调用方法

3.1 建一个order-service,引入IProductClient所在模块

微服务端口号为8081,并将order-service注册到nacos上,这个步骤省略;
引入IProductClient所在模块,不用引openfeign,因为引入这个依赖,那么openfeign已经在classpath下了

        <dependency><groupId>org.example</groupId><artifactId>product-service</artifactId><version>1.0-SNAPSHOT</version></dependency>

3.2 注入IProductClient,并调用方法

@RestController
@RequestMapping("/order")
public class OrderController {@AutowiredIProductClient productClient;@GetMapping("/list")public String list(){String list = productClient.list();return list +" order list";}
}

四、启动服务

启动order-service时可能会出现以下错误

Caused by: java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?

原因是:SpringCloud FeignHoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错。
解决方法:引入spring-cloud-loadbalancer并且排除掉nacos中的Ribbon依赖(但是我这里,没有排除ribbon依赖也可以)

order-service中引入

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

五、启动两个服务,访问端口

发现feign远程调用成功了
在这里插入图片描述

六、目录结构

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149651.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA基本简介(期末)

1、JDK JRE JVM &#xff08;1&#xff09;JDK JAVA标准开发包&#xff0c;提供了编译、运行JAVA程序所需的各种工具和资源&#xff0c;包括JAVA编译器、JAVA运行时的环境&#xff0c;及常用的JAVA类库等 &#xff08;2&#xff09;JRE JAVA运行环境&#xff0c;用于解释执行JA…

JW01二氧化碳传感器(串行通信 STM32)

目录 一、介绍 二、传感器原理 1.工作原理介绍 2.串口数据流格式 三、程序设计 main.c文件 usart3.h文件 usart3.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 JW01-CO2检测模块是一种用于检测空气中二氧化碳浓度的传感器模块。它可以广泛应用于室内空气质量…

美畅物联丨GB/T 28181系列之TCP/UDP被动模式和TCP主动模式

GB/T 28181《安全防范视频监控联网系统信息传输、交换、控制技术要求》作为我国安防领域的重要标准&#xff0c;为视频监控系统的建设提供了全面的技术指导和规范。该标准详细规定了视频监控系统的信息传输、交换和控制技术要求&#xff0c;在视频流传输方面&#xff0c;GB/T 2…

【Day20240924】05git 两人协作 冲突

git 两人协作 冲突 命令行解决 两个人修改同一文件时 的冲突可视化解决 两个人修改同一文件时 的冲突参考 命令行解决 两个人修改同一文件时 的冲突 假设kerwin.js是项目的路由文件。tiechui文件夹是组员铁锤的工作目录&#xff1b;test2008文件夹是组长的工作目录。此时&…

Redis 优化

目录 优雅的 key 删除 Bigkey 恰当的数据类型 批处理优化 Pipeline 集群下的批处理 服务端优化 持久化配置 慢查询 命令以及安全配置 内存安全和配置 内存缓冲区配置 集群最佳实践 集群带宽问题 集群还是主从 优雅的 key 删除 Bigkey Bigkey 内存占用较多&…

ubuntu 安裝 Poetry 示例

ubuntu 安裝 Poetry 示例 一、前言 poetry 是一个命令行工具&#xff0c;安装之后就可以使用 poetry 指令。可以将其安装全局环境或者是虚拟环境&#xff0c;我推荐安装在全局环境&#xff0c;这样在后面使用时不需要单独激活虚拟环境。 &#xff08;1&#xff09;安装 Poet…

【Linux】组管理权限管理任务调度【更详细,带实操】

Linux全套讲解系列&#xff0c;参考视频-B站韩顺平&#xff0c;本文的讲解更为详细 一、组管理 1、linux组的介绍 linux对文件的管理机制 linux中的文件有三个概念&#xff1a; 1、文件所有者是谁&#xff0c;谁创建了文件&#xff0c;当然文件所有者也可以修改2、文件属于…

基于内容的推荐算法

算法原理概述 首先推荐算法的作用是给用户推荐其可能喜欢的物品。此算法所依赖的数据大概分为两部分&#xff1a;&#xff08;1&#xff09;用户过去喜欢的物品&#xff1b;&#xff08;2&#xff09;每个物品的标签。 算法步骤 &#xff08;1&#xff09;根据用户过去喜欢的…

IIS HTTPS 网页可能暂时无法连接,或者它已永久性地移动到了新网址 ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY

问题描述&#xff1a;站点突然无法访问&#xff0c;经排查发现&#xff0c;HTTP协议的网址可以继续访问&#xff0c;HTTPS的网址不可以访问。 问题分析&#xff1a;在Windows更新和滚动之后&#xff0c;由于 HTTP/2&#xff0c;当站点启动了 HTTP/2 连接&#xff0c;会出现一个…

手机如何快速切换ip?探索多种方法

在当今这个信息高速流通的时代&#xff0c;IP地址作为网络世界中的独特标识&#xff0c;其重要性日益凸显。对于手机用户而言&#xff0c;无论是出于保护个人隐私、访问地域限制内容&#xff0c;还是进行网络测试等需求&#xff0c;快速切换IP地址都显得尤为关键。本文将深入探…

MySQL数据库备份详解

文章目录 引言● 数据库备份的重要性 MySQL数据库备份的基础知识● 备份类型1、完全备份2、增量备份3、差异备份 ● 备份工具与方法1、逻辑备份工具——mysqldump2、物理备份工具——Xtrabackup3、第三方解决方案 MySQL数据库备份的实施步骤1、环境准备2、选择合适的备份工具与…

大数据新视界 --大数据大厂之大数据实战指南:Apache Flume 数据采集的配置与优化秘籍

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

openeuler22.03 LTS 源码编译安装nginx1.22.1

openeuler22.03 LTS 源码编译安装nginx1.22.1 下载安装包 #官网下载nginx1.22.1 wget http://nginx.org/download/nginx-1.22.1.tar.gz安装依赖包 #安装依赖包&#xff0c;NGINX是C语言写的&#xff0c;pcre-devel支持正则表达式&#xff0c;openssl 开启加密 [rootproxy ~]…

AI编辑器CURSOR_CURSOR安装教程_使用AI进行编码的最佳方式。

一、CUROR简介 作为一个在代码海洋里遨游多年的老程序员&#xff0c;我得说&#xff0c;遇到CURSOR这位AI编辑器&#xff0c;就像是编程路上偶遇了一位智慧而又贴心的老友。 想象一下&#xff0c;夜深人静&#xff0c;你正埋头于那些错综复杂的逻辑和无尽的bug之中&#xff0…

理解Web3:去中心化互联网的基础概念

随着科技的不断进步&#xff0c;互联网的形态也在不断演变。从最初的静态网页&#xff08;Web1&#xff09;到动态的社交网络&#xff08;Web2&#xff09;&#xff0c;如今我们正步入一个新的阶段——Web3。这一新兴概念不仅代表了一种技术革新&#xff0c;更是一种互联网使用…

Python提供内置正则表达式库

正则表达式是一种强大的文本处理工具&#xff0c;可以匹配文本片段的模式 最简单的正则表达式就是普通的字符串&#xff0c;可以匹配自身 要注意的是&#xff0c;正则表达式并不是一个程序&#xff0c;它使用一种特定的语法模式来描述在搜索文本时要匹配的一个或多个字符串。正…

C语言_指针(2)

1.指针与数组的关系 1.1 数组名 先看代码&#xff1a; #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("&arr[0] %p\n", &arr[0]);printf("arr %p\n", arr);return 0;}运行结果是这样的&#xff1a; 我…

云计算Openstack

OpenStack是一个开源的云计算管理平台项目&#xff0c;由美国国家航空航天局&#xff08;NASA&#xff09;和Rackspace公司合作研发并发起&#xff0c;以Apache许可证授权。该项目旨在为公共及私有云的建设与管理提供软件支持&#xff0c;通过一系列相互协作的组件实现云计算服…

【Java数据结构】--- 优先级队列

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 &#xff0c;Java 欢迎大家访问~ 创作不易&#xff0c;大佬们点赞鼓励下吧~ 前言 继续来看这张图&#xff0c;我…

php thinkphp 小程序发送订阅模板消息通知

小程序需要在我的模板中先选用模板 小程序需要先订阅模板 wx.requestSubscribeMessage({tmplIds: ["XII_0By8D9WabnUjVPB_8S1itsm2d4_xxx"],success: