springBoot--web--路径匹配

news2024/10/6 22:33:55

路径匹配

  • 前言
  • 在配置文件中配置
  • 路径匹配结果

前言

spring5.3之后加入了更多的请求路径匹配的实现策略
以前只支持antPathMatcher策略,现在提供了PathPatternParse策略,并且可以让我们指定到底使用哪种策略
PathPatternParser:
在jmh基准测试下,有6-8倍的吞吐量提升,降低30%-40%空间分配律
兼容AntPathMatcher语法,并支持更多类型路径模式
**多段匹配的支持仅允许在模式末尾使用
在这里插入图片描述

在配置文件中配置

在这里插入图片描述

#改变路径匹配策略
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

路径匹配结果

1、Ant风格路径用法
ant风格的路径模式语法具有以下规则:

*:表示任意数量的字符
?:表示任意一个字符
**:表示任意数量的目录
{}:表示一个命名的模式占位符
[]:表示字符集合,列如:[a-z]表示小写字母
例如:
	*.html匹配任意名称,扩展名为.html的文件
	/folder1/*/*.java 匹配在folder1目录下任意两级目录下的.java文件
	/folder2/**/*.jsp 匹配在folder2目录下任意目录深度的.jsp文件
	/(type)/[id].html 匹配任意文件名为[id].html,在任意命名的[type]目录下的文件
注意:Ant风格的路径模式语法中的特殊字符需要转义,如:
	要匹配文件路径中的星号,则需要转义为\\*
	要匹配文件路径中的问好,则需要转义为\\?
package com.atguigu.boot304demo.controller;

import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author jitwxs
 * @date 2023年10月20日 10:55
 */
@Slf4j
@RestController
public class HelloController {
    @GetMapping("/a*/b?/**/{p1:[a-f]+}/**")
    public String hello(HttpServletRequest request, @PathVariable("p1") String path){
        log.info("路径变量p1: {}", path);
        String url = request.getRequestURI();
        return url;
    }
}

在这里插入图片描述

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

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

相关文章

SAP-MM-收货操作报错123

以下的报错都是收货时产生的: 1、消息号M7097:该物料不可能有库存记账 这个消息可以初步判断是因为物料类型的双更新没有勾选 用TCODE:OMS2,找到对应的物料类型,维护双更新。 2、消息号:M8147 不能为条目7333 GBB确立…

使用C#和Flurl.Http库的下载器程序

根据您的要求,我为您编写了一个使用C#和Flurl.Http库的下载器程序,用于下载凤凰网的图片。以下是一个简单的示例代码: using System; using Flurl.Http;namespace DownloadImage {class Program{static void Main(string[] args){string url…

STM32下载程序,可以使用串口了,但是要对的boot进行设置,以及boot的使用,直接烧录,可以运行,但是下次复位,得先换BOOT0为0

STM32下载程序串口下载stm32程序 注意:直接烧录,可以运行,但是下次复位,得先换BOOT0为0 有的朋友可能遇到过这种情况:程序第一次下载的时候可以运行,但是掉电重启之后,程序就不能运行了。这种情…

利用Python爬虫获取某乎热榜

如今,某乎必须要登录才能查看相关话题内容,给我们的日常造成了极大的不便,今天我就教大家如何利用简单的代码,绕开登录限制。 准备工作 配置好python运行环境,推荐 pycharm。复制下面的源代码,运行&#x…

OnlyOffice documentType类型值

参考官网说明: https://api.onlyoffice.com/editors/config/#documentType 其值为:word | cell | slide

Java数字处理类--Math类--随机数

1. 生成随机数方法: 1.1 Math.random()方法 1.2 Random类 2. Math.random()方法 2.1 Math.random():产生0~1之间的double型随机数 package MathInfo;public class MathRandom {//定义产生偶数的公式:int num (int) num1 (int) (Math.random() * (num…

信息系统基础选择题真题

信息系统基础选择题真题 真题中超纲的较多 纯理论记忆 企业信息化 企业资源计划ERP 客户关系管理CRM 供应链管理SCM 决策支持系统DSS 论文: 企业集成 企业应用集成(常考)应用集成数据交换企业集成平台(常考)企业信息集…

分析RPA流程自动化的挑战和解决方案

随着数字化工具和自动化解决方案的日益成熟,各行各业发掘到RPA机器人流程自动化技术的先进性,逐渐规模化部署RPA。 为了更好地推进RPA的实施,金智维在这里分享一些运用这项技术时面临的共同挑战,并给出针对性的解决方案。 组织架构…

【Kubernetes】Operator开发之kubebuilder实战(一)

1 什么是Operator k8s原生提供了很多资源类型,像用于无状态应用的Deployment、ReplicaSet和有状态应用的StatefulSet,用户可以通过向k8s提交yaml文件的方式进行资源的管理,但是,有时候,原生的这些资源无法满足我们的需…

【Python】图像和办公文档的处理

图像和办公文档处理 用程序来处理图像和办公文档经常出现在实际开发中,Python的标准库中虽然没有直接支持这些操作的模块,但我们可以通过Python生态圈中的第三方模块来完成这些操作。 操作图像 计算机图像相关知识 颜色。如果你有使用颜料画画的经历&…

Day5力扣打卡

打卡记录 对角线上不同值的数量差(矩阵对角线遍历 前缀和) 链接 思路:由于任意行 i 与 列 j,满足对角线上 i j t 的关系,t 的范围为 [1 - n, m - 1],设 s t n,可以得到 s的范围为 [1, n …

vue3后台管理系统之顶部tabbar组件搭建

1.1静态页面搭建 <template><div class"tabbar"><div class"tabbar_left"><!-- 面包屑 --><Breadcrumb /></div><div class"tabbar_right"><!-- 设置 --><Setting /></div></di…

有源RFID标签系统SOC单发芯片——Si24R2E

Si24R2E是针对有源RFID市场设计的低功耗、高性能的2.4GHz标签系统的SoC单芯片&#xff0c;集成嵌入式2.4GHz无线射频发射器模块、128次可编程NVM存储器模块以及自动发射控Z器模块等。 Si24R2E采用GFSK/FSK数字调制与解调技术。数据传输速率可配置&#xff0c;支持2Mbps、1Mbps和…

UML(Unified Modeling Language)统一建模语言,及工具介绍、使用

1. UML介绍&#xff1a; UML&#xff08;Unified Modeling Language&#xff09;统一建模语言。是一种图形化语言。 在UML 2.5 中共包含14种图形&#xff1a;类图、用例图、活动图、对象图、时序图、交互概述图、包图、配置文件图、部署图、组件图、组合结构图、状态机图、通…

[ Windows-Nginx ]Windows服务器,Tomcat容器部署项目,整合Nginx

一、官网下载Nginx http://nginx.org/en/download.html 稳定版&#xff1a;windows的stable版本 注意&#xff1a;Nginx安装包不要放在中文目录下 二、conf目录下&#xff0c;修改nginx.conf文件 修改Nginx服务端口&#xff1a; 默认端口为80&#xff0c;即外界访问的入口…

图论01-【无权无向】-图的基本表示-邻接矩阵/邻接表

文章目录 1. 代码仓库2. 图的基本表示的比较3. 邻接矩阵&#xff1a;Array和TreeSet3.1 图示3.2 Array主要代码解析3.3 测试输出3.4 使用TreeSet的代码 4. 邻接表&#xff1a;LinkedList4.1 图示4.2 LinkedList主要代码解析4.3 测试输出 5. 完整代码5.1 邻接表 - Array5.2 邻接…

Hadoop3教程(二十七):(生产调优篇)HDFS读写压测

文章目录 &#xff08;146&#xff09;HDFS压测环境准备&#xff08;147&#xff09;HDFS读写压测写压测读压测 参考文献 &#xff08;146&#xff09;HDFS压测环境准备 对开发人员来讲&#xff0c;压测这个技能很重要。 假设你刚搭建好一个集群&#xff0c;就可以直接投入生…

屏幕录像推荐:Apeaksoft Screen Recorder 中文 for mac

Apeaksoft Screen Recorder 是一款功能强大的屏幕录制软件&#xff0c;它允许用户在 Windows 和 Mac 系统上捕捉和录制屏幕活动。无论是记录游戏过程、创建教学视频、制作演示文稿还是捕捉在线流媒体内容&#xff0c;该软件都提供了丰富的功能和工具。 以下是 Apeaksoft Scree…

【LeetCode每日一题合集】2023.10.9-2023.10.15(贪心⭐位运算的应用:只出现一次的数字)

文章目录 2578. 最小和分割&#xff08;贪心&#xff09;2731. 移动机器人&#xff08;脑筋急转弯排序统计&#xff09;2512. 奖励最顶尖的 K 名学生&#xff08;哈希表排序&#xff09;&#xff08;练习Java语法&#xff09;代码风格1代码风格2 2562. 找出数组的串联值&#x…

基于Linux的驱动开发:内核模块传参、内核到处符号表、字符设备驱动

内核模块传参 内核模块&#xff1a; int a , b; 安装内核模块时&#xff1a;insmod demo.ko a 100 b 10; 1.内核模块传参的意义 在安装内核模块时给内核模块中的变量进行数值传递&#xff0c;这样可以让我们的内核模块向上兼容更为复杂的应用程序&#xff0c;向下适配多种硬件…