⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 cnblogs.com/amyzhu/archive/2019/09/07/11481680.html 「AmyZYX」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

背景

最近有一个功能设计path匹配,开发说支持ant匹配,这是我第一次听说这个词,赶紧补一下功课。

Ant匹配规则

1.前言

(1)SpringMVC的路径匹配规则是按照Ant来的,实际上不只是SpringMVC,整个Spring框架的路径解析都是按照Ant的风格来的。

(2)AntPathMatcher不仅可以匹配Spring的@RequestMapping路径,也可以用来匹配各种字符串,包括文件路径等。

2.基本规则

wildcard description
? 匹配任何单字符
* 匹配0或者任务数量的字符
** 匹配0或者更多的目录
{spring:[a-z]+} 将正则表达式[a-z]+匹配到的值,赋值给名为sprint的路径变量(4.3引入功能)

注意:遵循最长匹配原则(has more characters),即越精确的模式越会被优先匹配到。

3.例子

路径 说明
/app/*.x 匹配所有在app路径下的.x文件
/app/p?ttern 匹配/app/pattern、/app/pXttern,不匹配/app/pttern
/**/exapmplte 匹配example结尾的路径
/*/.jsp 匹配任何的.jsp文件
文章目录
  1. 1. 背景
  2. 2. Ant匹配规则
    1. 2.1. 1.前言
    2. 2.2. 2.基本规则
    3. 2.3. 3.例子