Spring RequestMapping检测路径匹配核心类AntPathMatcher

简介: Spring RequestMapping检测路径匹配核心类AntPathMatcher
本文基于Spring 5.0+

项目某些页面是通过后台映射的,匹配映射路径时,有那种路径参数匹配。其中一个定义好的路径匹配是:


/{corporationName}_{vendorName}/{shopName}_with_{retailer_name}?g={goodsId}


当时没有仔细看,其实{goodsId}也应该作为路径参数,可能是前端想要拿到这个id,放在url参数的位置比较容易拿到,所以就放在这个位置。


想验证下这样自由的url是否能匹配成功,看了下spring-webmvcspring-core的源码,找到url匹配核心类PathMatcher,目前还是只有古老的AntPathMatcher这一种实现。


我们来试下,是否能匹配成功:

new AntPathMatcher().match("/{corporationName}_{vendorName}/{shopName}_with_{retailer_name}?g={goodsId}","/corporation 1 _ vendor 2/shop 1_with_retailer 2?g=good1")

这个返回是true

看来可以匹配,实装后,发现访问路径返回404.查看源码,发现HttpRequest的url里面是不带url参数的,诶呀,把这个给忘了,修改成@RequestMapping("/{corporationName}_{vendorName}/{shopName}_with_{retailer_name}")之后,成功

但是,还是在设计的时候,把goodId设置在路径上面,比较好。虽然前端可能会麻烦一点儿

相关文章
|
11天前
|
安全 前端开发 Java
理解 Spring Security 的 HttpMethod 和路径匹配
本文深入解析了Spring Security中`HttpMethod`与路径匹配的使用方法及其常见问题。通过具体示例,阐明了如何针对不同HTTP方法(如GET、POST)和路径(如`/api/products`与`/products`)设置权限,避免用户绕过限制访问核心数据。同时,强调了配置顺序和角色前缀的重要性,并提供了最佳实践,帮助开发者精准控制应用的安全性。
32 1
|
11天前
|
前端开发 IDE Java
Spring MVC 中因导入错误的 Model 类报错问题解析
在 Spring MVC 或 Spring Boot 开发中,若导入错误的 `Model` 类(如 `ch.qos.logback.core.model.Model`),会导致无法解析 `addAttribute` 方法的错误。正确类应为 `org.springframework.ui.Model`。此问题通常因 IDE 自动导入错误类引起。解决方法包括:删除错误导入、添加正确包路径、验证依赖及清理缓存。确保代码中正确使用 Spring 提供的 `Model` 接口以实现前后端数据传递。
35 0
|
4月前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
220 73
|
4月前
|
Java Spring
【Spring配置相关】启动类为Current File,如何更改
问题场景:当我们切换类的界面的时候,重新启动的按钮是灰色的,不能使用,并且只有一个Current File 项目,下面介绍两种方法来解决这个问题。
106 10
|
5月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
121 9
|
8月前
|
缓存 Java 开发者
Spring高手之路22——AOP切面类的封装与解析
本篇文章深入解析了Spring AOP的工作机制,包括Advisor和TargetSource的构建与作用。通过详尽的源码分析和实际案例,帮助开发者全面理解AOP的核心技术,提升在实际项目中的应用能力。
141 0
Spring高手之路22——AOP切面类的封装与解析
|
9月前
|
Java Spring
idea新建spring boot 项目右键无package及java类的选项
idea新建spring boot 项目右键无package及java类的选项
363 5
|
9月前
|
Java 数据库连接 API
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法
683 1
|
10月前
|
前端开发 Java 开发者
在Spring框架中,`PathMatcher`是用于进行URL路径匹配的接口
在Spring框架中,`PathMatcher`是用于进行URL路径匹配的接口
329 6
|
XML 前端开发 Java
Spring 最常用的 7 大类注解,史上最强整理!
随着技术的更新迭代,Java5.0开始支持注解。而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架。