iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringCloud如何使用Feign实现动态路由操作
  • 925
分享到

SpringCloud如何使用Feign实现动态路由操作

2023-06-30 18:06:02 925人浏览 泡泡鱼
摘要

这篇文章主要介绍“SpringCloud如何使用Feign实现动态路由操作”,在日常操作中,相信很多人在springCloud如何使用Feign实现动态路由操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S

这篇文章主要介绍“SpringCloud如何使用Feign实现动态路由操作”,在日常操作中,相信很多人在springCloud如何使用Feign实现动态路由操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SprinGCloud如何使用Feign实现动态路由操作”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    一、理解及原理

    1.1理解

    Feign
    基于接口 + 注解的方式,一个Http请求调用的轻量级框架

    Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP api

    Feign是一种声明式、模板化的HTTP客户端(仅在Application Client中使用)。声明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程http请求

    SpringCloud如何使用Feign实现动态路由操作

    1.2原理

    SpringCloud如何使用Feign实现动态路由操作

    二、Feign搭建实现步骤

    • 创建SpringBoot基础项目

    • 在注册中心(Eureka)配置的基础上,进行配置Feign

    三、配置文件(pom.xml)

    基础配置:

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

    整体:

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-WEB</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><version>RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>Mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><!-- swagger --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.4.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.4.0</version></dependency><dependency><groupId>com.GitHub.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.8.7</version></dependency><!--添加lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>RELEASE</version><scope>compile</scope></dependency><dependency><groupId>com.Google.guava</groupId><artifactId>guava</artifactId><version>20.0</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version><scope>compile</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--pagehelper分页--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.11</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.11</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version></dependency><!--验证码https://blog.csdn.net/qq_41853447/article/details/105893567--><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version></dependency><!--security权限管理--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency></dependencies>

    三、程序代码

    在启动类上加上@EnableFeignClients,开启Feign的应用

    @EnableEurekaServer@EnableSwagger2@SpringBootApplication@EnableFeignClients(basePackages = "com.personal.pserver")public class PserverApplication {public static void main(String[] args) {SpringApplication.run(PserverApplication.class, args);System.out.println("========================person-server已启动========================");}}

    启动类添加完成之后,在指定需要访问的service注册使用,

    见其他博主讲解:

    在通过Feign来实现远程服务调用时,需要提供一个本地接口来继承服务标准工程提供的服务接口。这个本地接口不需要给予任何实现,在底层Spring容器会为这个接口提供一个基于jdk实现的代理对象,这个代理对象由Feign技术提供具体的HandlerInterceptor逻辑,实现远程的调用。实现过程类似通过代码调用LoadBalancerClient实现的Rest远程访问。
      而本地接口继承服务标准接口后,需要提供注解@FeignClient,注解的属性name代表当前接口要调用的远程服务的应用命名。

    SpringCloud如何使用Feign实现动态路由操作

    @RestController@Api(tags = "平台基本信息管理")@RequestMapping("/v1/pserver/platfORM/manager")public class PlatformController {@Autowiredprivate PPlatformService platformService;@ApiOperation(value = "获取平台基本信息", notes = "获取平台基本信息", httpMethod = "GET")@RequestMapping(value = "/findPlatformInfo",method = RequestMethod.GET)public PPlatform findPlatformInfo(@RequestParam("platformId") String platformId) {PPlatform pPlatform = platformService.findOnePlatformById(platformId);return pPlatform;}}
    @FeignClient(name="p-platform-service")public interface PPlatformService {@RequestMapping(value="/findPlatformInfo",method = RequestMethod.GET)PPlatform findOnePlatformById(@RequestParam(value="platformId") String platformId);}

    四、结果演示

    SpringCloud如何使用Feign实现动态路由操作

    SpringCloud如何使用Feign实现动态路由操作

    到此,关于“SpringCloud如何使用Feign实现动态路由操作”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: SpringCloud如何使用Feign实现动态路由操作

    本文链接: https://www.lsjlt.com/news/330778.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • SpringCloud如何使用Feign实现动态路由操作
      这篇文章主要介绍“SpringCloud如何使用Feign实现动态路由操作”,在日常操作中,相信很多人在SpringCloud如何使用Feign实现动态路由操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
      99+
      2023-06-30
    • SpringCloud使用Feign实现动态路由操作
      目录一、理解及原理1.1理解1.2原理二、Feign搭建实现步骤三、配置文件(pom.xml)四、程序代码五、结果演示一、理解及原理 1.1理解 Feign基于接口 + 注解的方式,...
      99+
      2024-04-02
    • 如何使用Quagga实现Linux动态路由
      这篇文章给大家分享的是有关如何使用Quagga实现Linux动态路由的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。OSPF 的意思是最短路径优先Open Shortest Path First。OSPF &nbs...
      99+
      2023-06-16
    • Vue router动态路由如何实现
      本文小编为大家详细介绍“Vue router动态路由如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue router动态路由如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实...
      99+
      2023-07-05
    • VUE路由动态加载如何实现
      这篇文章主要讲解了“VUE路由动态加载如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE路由动态加载如何实现”吧!首先新建vue工程,一般我们不会特殊处理路由,但当项目页面越来越多...
      99+
      2023-07-04
    • Vue如何实现动态路由导航
      这篇文章主要介绍“Vue如何实现动态路由导航”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue如何实现动态路由导航”文章能帮助大家解决问题。1、导航守卫“导航” 表示路由正在发生改变正如其名,vu...
      99+
      2023-07-05
    • 怎么用vue实现动态路由
      这篇文章主要介绍了怎么用vue实现动态路由的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用vue实现动态路由文章都会有所收获,下面我们一起来看看吧。1、什么是动态路由?动态路由,动态即不是写死的,是可变的。...
      99+
      2023-07-02
    • 如何在Go语言中实现路由的动态路由匹配
      Go语言是一门快速、高效、安全、并发的编程语言,被越来越多的开发者广泛应用于Web开发中。在Web应用程序中,路由是非常重要的一环,它的作用是将请求分发到不同的处理器函数中。在此基础上,动态路由匹配更是一种灵活、高效的路由实现方式。本文将介...
      99+
      2023-12-17
      Go语言 路由 动态匹配
    • Nacos+Spring Cloud Gateway动态路由如何配置实现
      小编给大家分享一下Nacos+Spring Cloud Gateway动态路由如何配置实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言  Nacos最近项目一直在使用,其简单灵活,支持更细粒度的命令空间,分组等为麻烦...
      99+
      2023-06-20
    • 如何使用Feign动态设置header
      今天小编给大家分享一下如何使用Feign动态设置header的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Feign动态设置...
      99+
      2023-06-29
    • springcloud gateway如何实现路由和负载均衡
      简介: gateway主要是做路由 负载,过滤 主要是替代zuul 1.x 性能比zuul好 zuul是基于 Servlet ,gateway是基于spring-webflux 用的...
      99+
      2024-04-02
    • JQuery如何实现动态操作表格
      这篇文章给大家分享的是有关JQuery如何实现动态操作表格的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近要做的东西,是对一个表格动态的添加行,删除行,并且对表格中内容进行非空...
      99+
      2024-04-02
    • VUE 路由实现动态路由,轻松应对复杂应用场景
      VUE 路由是一个非常强大的路由库,它提供了丰富的功能,可以帮助我们轻松地构建单页应用。其中,动态路由是 VUE 路由的一大特色,它允许我们根据需要动态地生成路由,从而可以轻松地应对复杂应用场景。 动态路由的实现 动态路由的实现非常简单...
      99+
      2024-02-05
      VUE 路由 动态路由 路由管理 单页应用
    • laravel自动路由如何使用
      本篇内容主要讲解“laravel自动路由如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“laravel自动路由如何使用”吧!第一个版本一.功能优点1。自动匹配控制器例如:网址:localh...
      99+
      2023-07-04
    • 如何利用Vue3管理系统实现动态路由和动态侧边菜单栏
      目录前言动态路由动态侧边菜单栏总结前言 在做Vue管理系统的时候,都会遇到的一个需求:每个用户的权限是不一样的,那么他可以访问的页面(路由),可以操作的菜单选项是不一样的,如果由后端...
      99+
      2024-04-02
    • PHP中使用路由匹配器实现路由规则的动态配置和扩展
      在Web应用程序中,路由规则是非常重要的一部分。它决定了如何根据用户的请求将其映射到相应的处理程序或控制器。传统的做法是在应用程序的代码中硬编码路由规则,这样会导致代码难以维护和扩展。为了解决这个问题,可以使用路由匹配器来实现路由规则的动态...
      99+
      2023-10-21
      路由匹配器 (Route Matcher) 路由规则 (Route Rules) 动态配置 (Dynamic Confi
    • 如何使用nodejs实现路由功能
      这篇文章将为大家详细讲解有关如何使用nodejs实现路由功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。结构  项目结构如下  代码如下功能【router.js】// 加载所需模块var&nb...
      99+
      2023-06-14
    • 如何使用director.js实现前端路由
      这篇文章主要介绍了如何使用director.js实现前端路由,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。director.js是什么? 理...
      99+
      2024-04-02
    • feign调用实现url和接口路径的动态配置化
      做接口开发请求第三方服务的接口,大概率会用feign做请求,而feign也是最常用的一种rpc框架; 这里主要是说明在进行feign请求的时候,第三方服务的url和接口也是可以通过读取配置文件的配置,来进行请求的; 至于为什么要把接口和ur...
      99+
      2023-09-06
      java 后端
    • 静态路由如何实现负载均衡
      静态路由是一种简单的路由方式,它是通过手动配置路由表来实现路由转发的。静态路由并不具备负载均衡的能力,它只能将特定的流量转发到预先配...
      99+
      2023-09-07
      负载均衡
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作