SpringBoot整合GateWay(详细配置)

 

前言

        在Spring Boot中整合Spring Cloud Gateway是一个常见的需求,尤其是当需要构建一个微服务架构的应用程序时。Spring Cloud Gateway是Spring Cloud生态系统中的一个项目,它提供了一个API网关,用于处理服务之间的请求路由、安全、监控和限流等功能。

一、GateWay依赖

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

二、application.yml配置

server:port: 9527spring:application:name: cloud-gatewaycloud:gateway:discovery:locator:enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由routes:- id: payment_routh #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
#          uri: http://localhost:8001          #匹配后提供服务的路由地址uri: lb://CLOUD-PAYMENT-SERVICE #匹配后提供服务的路由地址predicates:- Path=/Payment/getPaymentById/**         # 断言,路径相匹配的进行路由- id: payment_routh2 #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
#          uri: http://localhost:8001          #匹配后提供服务的路由地址uri: lb://CLOUD-PAYMENT-SERVICE #匹配后提供服务的路由地址predicates:- Path=/Payment/lb/**         # 断言,路径相匹配的进行路由- After=2020-11-20T17:07:24.352+08:00[Asia/Shanghai]
#            - Cookie=username,longy# - Before=2020-11-20T17:11:24.352+08:00[Asia/Shanghai]#- Header=X-Request-Id, \d+  # 请求头要有X-Request-Id属性并且值为整数的正则表达式

 三、过滤器

@Component
@Slf4j
public class MyLogGatewayFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {System.out.println("***********************************************" + new Date());log.info("***********************************************" + new Date());String uname = exchange.getRequest().getQueryParams().getFirst("uname");if (uname == null) {System.out.println("用户名为null,非法用户***********************o(╥﹏╥)o");log.info("用户名为null,非法用户***********************o(╥﹏╥)o");exchange.getResponse().setStatusCode(HttpStatus.NO_CONTENT);return exchange.getResponse().setComplete();}return chain.filter(exchange);}@Overridepublic int getOrder() {return 0;}
}

总结

        整合Spring Cloud Gateway到Spring Boot项目中需要添加相关依赖、配置路由规则、过滤器以及其他相关设置。这个过程涉及到多个步骤和配置文件,需要仔细规划和配置。一旦配置完成,Spring Cloud Gateway将为你的微服务架构提供强大的路由、安全性和监控功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【测试运维】性能测试经验文档总结第3篇:VuGen详解(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论性能测试相关知识。入门阶段&#xff1a;认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试)&#xff0c;常用性能测试指标-(吞吐量、并发数、响应时间、点击数...)&#xff0c;性能测试工具选择。性能脚本&…

LeetCode171. Excel Sheet Column Number

文章目录 一、题目二、题解 一、题目 Given a string columnTitle that represents the column title as appears in an Excel sheet, return its corresponding column number. For example: A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … Exa…

跨境商品实时信息查询系统:利用“item_get_app”获取商品详情原数据

在跨境电商领域&#xff0c;商品信息的实时查询与展示对于商家、消费者和平台运营者都至关重要。随着全球化的加速和电子商务的快速发展&#xff0c;能够快速、准确地获取商品信息成为了提升用户体验、优化供应链管理以及制定有效市场策略的关键。因此&#xff0c;构建一个跨境…

嵌入式20——标准IO

1.函数接口: 1.fwrite size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); 功能: 向流中写入nmemb个对象,每个对象size字节大小,在ptr指向的空间中 参数: ptr:存放数据空间的首地址 size:每个数据对象…

GPT每日面试题—HTTP三次握手四次挥手

充分利用ChatGPT的优势&#xff0c;帮助我们快速准备前端面试。今日问题&#xff1a;HTTP三次握手和四次挥手&#xff1f;为什么是三次握手而不是二次或者四次呢&#xff1f; Q&#xff1a;如果在前端面试中&#xff0c;被问到HTTP的三次握手和四次挥手&#xff0c;怎么回答比较…

C#面:简述重载

重载是指在同一个作用域内&#xff0c;可以定义多个同名但参数列表不同的函数或方法。通过重载&#xff0c;可以根据不同的参数类型或参数个数来调用不同的函数或方法。 在C#中&#xff0c;重载的函数或方法必须具有不同的参数列表&#xff0c;包括参数的类型、个数或者参数的…

列表推导式与生成表达式的区别

列表推导式与生成式表达式的区别&#xff1a; 列表推导式 res[i for i in range(6)] print(res) 结果&#xff1a; [0, 1, 2, 3, 4, 5] 生成表达式&#xff1a; res(i for i in range(6)) print(res) 结果&#xff1a; <generator object <genexpr> at 0x0000013EAD0…

代码随想录算法训练营第34天| Leetcode 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

文章目录 Leetcode 860.柠檬水找零Leetcode 406.根据身高重建队列Leetcode 452. 用最少数量的箭引爆气球 Leetcode 860.柠檬水找零 题目链接&#xff1a;Leetcode 860.柠檬水找零 题目描述&#xff1a; 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的…

linux系统---防火墙

目录 一、防火墙的认识 1.防火墙定义 2.防火墙分类 二、Linux系统防火墙 1.Netfilter 2.防火墙工具介绍 2.1iptables 2.2firewalld 2.3nftables 2.4netfilter的五个勾子函数和报文流向 2.4.1五个勾子 2.4.2三种报文流向 3.iptables 3.1iptables概述 3.2iptables…

算法训练营day30,贪心算法4

import "sort" // 860. 柠檬水找零 func lemonadeChange(bills []int) bool { //如果最开始就大于5元&#xff0c;肯定无法找零直接返回false if len(bills) > 0 && bills[0] > 5 { return false } five : 0 ten : 0 twenty : 0 for i : 0; i < l…

Python在金融大数据分析中的AI应用实战

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 随着人工智能时代的到来&#xff0c;Python作为…

Java入门教程:介绍、优势、发展历史以及Hello World程序示例

Java入门教学 java语言介绍 Java是由Sun Microsystems公司(已被Oracle公司收购)于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发&#xff0c;并在1995年正式推出。 Java分为三个体系&#xff1a; JavaSE&#xff08;J2SE&…

cyk追楠神系列三

cyk追楠神系列三 Description 众所周知&#xff0c;cyk给楠神写了一封信表白。作为有一个有礼貌的五好青年&#xff0c;楠神当然得给 cyk 写一封回信咯&#xff0c;俗称“好人信”。 楠神是一个非常有文采的人&#xff0c;他在信里引用了很多名言来安慰 cyk&#xff0c;有时候…

最长公共子序列和最长公共子串

最长公共子序列 题目描述 给出1,2,…,n 的两个排列P1 和 P2 &#xff0c;求它们的最长公共子序列。 输入格式 第一行是一个数 n。 接下来两行&#xff0c;每行为 n 个数&#xff0c;为自然数1,2,…,n 的一个排列。 输出格式 一个数&#xff0c;即最长公共子序列的长度。…

浅谈iPaaS对企业转型的重要性

面对数字化转型的大浪潮&#xff0c;众多企业都期望着能快速实现全面的数字化转型&#xff0c;让企业在日益激烈的竞争中拥有更稳的市场地位&#xff0c;提升自身的实力及能力&#xff0c;奠定更坚实的基底。但在数字化转型过程中&#xff0c;部分企业数字化基础水平较薄弱&…

Spring Boot注入PasswordEncoder失败

问题 以Autowired方式注入PasswordEncoder对登录密码进行校验&#xff0c;启动时报错如下 Description:Field userService in com.lyx.springboot.controller.UserController required a bean of type org.springframework.security.crypto.password.PasswordEncoder that co…

C语言:国家名称按字母表排序

题目描述 输入一个整数n(n<20)&#xff0c;表示待输入国家的数量。随后输入n个国家或地区的名称 (名称长度为1~30)&#xff0c;要求按字母顺序升序输出。 注意&#xff1a;名称中可能包含空格符。 提示 字符串比较请使用函数&#xff1a; int strcmp(const char* str1&a…

开源软件:推动软件行业繁荣的力量

文章目录 &#x1f4d1;引言开源软件的优势分析开放性与透明度低成本与灵活性创新与协作 开源软件对软件行业的影响推动技术创新和进步促进软件行业的合作与交流培养人才和提高技能促进软件行业的可持续发展 结语 &#x1f4d1;引言 随着信息技术的飞速发展&#xff0c;软件已经…

设计模式Python实现

过年在家瞎折腾&#xff0c;闲着无聊看到设计模式&#xff0c;于是就想着用Python实现一下。 简单工厂 根据传入的参数决定创建出哪一种产品类的实例。 class CashFactory:def createCashAdapter(self, type):if type "满100减20":return CashReturn(100, 20)elif…

Sora爆火,普通人的10个赚钱机会

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…