Ant path 匹配原则
路径匹配原则(Path Matching) Spring MVC中的路径匹配要比标准的web.xml要灵活的多。
默认的策略实现了 org.springframework.util.AntPathMatcher,就像名字提示的那样,路径模式是使用了Apache Ant的样式路径,
Apache Ant样式的路径有三种通配符匹配方法(在下面的表格中列出)
这些可以组合出很多种灵活的路径模式
通配符说明
? 匹配任何单字符
* 匹配0或者任意数量的字符
** 匹配0或者更多的目录
Spring提供了强大的Ant模式通配符匹配,从同一个路径能匹配一批资源。
Ant路径通配符支持"?"、"*"、"**",注意通配符匹配不包括目录分隔符“/”。
? :匹配任何单字符
如"config?.xml"可匹配"config1.xml"。
* :匹配0或者任意数量的字符
如“com/*/config.xml”将匹配“cn/feng/config.xml”,但不匹配匹配“com/config.xml”(因为这里匹配的是字符串,如果是目录的话则可以);而“com/config-*.xml”将匹配“com/config-dao.xml”。
** :匹配0或者更多的目录
如“com/**/config.xml”将匹配“com/config.xml”,也匹配“com/feng/spring/config.xml”;而“com/feng/config-**.xml”将匹配“com/feng/config-dao.xml”,即把“**”当做两个“*”处理。
Spring在加载类路径资源时除了提供前缀“classpath:”的来支持加载一个Resource,还提供一个前缀“classpath*:”来支持加载所有匹配的类路径Resource。
Spring提供了ResourcePatternResolver接口来加载多个Resource。
@Test public void testClasspathPrefix()throws IOException{ ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); //只加载一个绝对匹配Resource,且通过ResourceLoader.getResource进行加载 Resource resources=resolver.getResource("classpath:META-INF/INDEX.LIST"); Assert.assertEquals(1, resources.length); //只加载一个匹配的Resource,且通过ResourceLoader.getResource进行加载 resources = resolver.getResource("classpath:META-INF/*.LIST"); Assert.assertTrue(resources.length == 1); }
一、"classpath":用于加载类路径(包括jar包)中的一个且仅一个资源;对于多个匹配的也只返回一个。如果需要多个匹配的则考虑"classpath*."前缀。
二、"classpath*":用于加载类路径(包括jar包)中所有的匹配的资源。
相关推荐
AntPathMatcher是Spring框架中用于路径匹配的一个工具类,其核心功能是提供了对Ant风格路径模式的匹配。所谓Ant风格的路径模式,是借鉴自Apache Ant构建工具的一种路径表达方式,它允许使用特定的通配符来进行模式...
Jakarta ORO,全称为Open Repository for Java Text Processing,是一个用于Java的正则表达式库,源自Perl风格的模式匹配。它提供了一个API,允许开发者在Java应用程序中进行复杂文本处理和模式匹配,包括分词、搜索...
例如,你可以创建一个Ant任务,匹配所有以".java"结尾的文件,并使用正则表达式检查它们的编码风格是否符合项目规范。此外,还可以用它来清理日志文件,删除或替换不需要的信息。 总结来说,Ant Apache Regexp ...
在本篇文章中,我们将详细介绍Zuul的路径匹配机制,包括Ant风格的路径表达式、路由匹配算法等方面的知识点。 路径匹配的Ant风格定义 ----------------------------- 在Zuul中,路由匹配的路径表达式采用了Ant风格...
Jakarta ORO提供了一套强大的Perl5风格的正则表达式引擎,使得Ant在处理文件名或其他字符串时能进行复杂过滤和操作。 为了在Ant构建脚本中使用FTP任务,你需要在`build.xml`文件中引入这些库,并配置FTP任务。例如...
通过上述示例可以看出,为了能够有效地验证URL,所编写的正则表达式需要考虑到各种URL格式的可能性,如协议类型、域名、端口号、路径和查询参数等。开发者可以根据实际需求对正则表达式进行适当的调整和优化,以确保...
首先,jakarta-oro-2.0.8.jar是 Jakarta ORO 库的一个版本,它提供了Perl5风格的正则表达式引擎。虽然在Ant的FTP任务中,这个库并不是直接用于文件传输,但它可能用于处理或验证文件路径、URL等字符串,因为Ant的...
开发者可以将这个JAR文件添加到他们的项目类路径中,以便在Ant构建脚本中使用正则表达式相关的功能。 "ant.license.txt"文件通常包含Apache Ant的许可信息,这通常是开源软件的许可证文本,详细说明了软件的使用、...
**Jakarta Regexp** 是Apache软件基金会的一个子项目,它提供了Java版的Perl风格的正则表达式引擎。Jakarta Regexp库允许Ant在执行构建任务时进行复杂的字符串匹配和替换操作,极大地扩展了Ant在处理文本方面的功能...
Oro库提供了Perl5风格的正则表达式引擎,使得开发者可以在Java程序中方便地进行模式匹配、分割、替换等操作,极大地提高了文本处理的灵活性和效率。 1. **Oro的主要特性**: - 支持Perl5语法:包括元字符、字符类...
而Ant-Design-Vue-Pro作为蚂蚁金服推出的企业级UI解决方案,提供了丰富的组件和优雅的设计风格,为前端开发带来便利。 一、SpringBoot基础 1.1 SpringBoot简介:SpringBoot是Spring框架的简化版本,它内置了Tomcat...
- 配置表达式(如 */3****),表示每3分钟构建一次。 5. **构建环境**: - 此部分根据实际情况配置,一般不涉及具体代码变更。 6. **构建过程**: - 选择 “Invoke Ant”。 - 在 BuildFile 位置输入 build.xml...
这些Matcher类能够根据Ant风格或正则表达式对路径进行匹配。 1. **AntPathMatcher**: - Ant风格的路径匹配是一种广泛使用的模式,它源自Apache Ant项目。例如,`/users/*`可以匹配所有以`/users/`开头的路径。 -...
这包括使用正则表达式或Ant风格的路径表达式来定义URL模式,精确控制哪些用户可以访问哪些资源。 2. **业务类方法访问控制**:Acegi能够控制Spring容器中Bean的所有方法调用权限,确保只有授权用户才能执行特定的...
Jakarta ORO是一个强大的正则表达式引擎,为Java开发者提供了Perl风格的正则表达式处理能力。在Apache FTP工具中,可能用到这个库来处理和验证FTP服务器上的文件路径或URL,或者进行文本匹配操作。 2. `commons-io-...
支持逗号、分号、制表符或换行符分隔的多个路径,也可以使用Ant风格的路径表达式。 - **configLocation属性**:如果基础的`SqlSessionFactoryBean`配置无法满足需求,可以通过此属性指定自定义的MyBatis全局配置...
- **Resource通配符路径**:支持Ant风格的路径模式匹配。 ### Spring表达式语言(SpEL) Spring表达式语言是一个功能强大的表达式语言,它支持在运行时查询和操作对象图。 - **SpEL基础**:提供了一套表达式语法...
Acegi允许开发者通过正则表达式或Ant风格的路径定义,控制哪些URL可被授权用户访问。例如,所有用户可以访问登录页面,而只有特定用户可以访问特定的管理页面。这种控制方式使得系统能够灵活地管理不同级别的用户...
- **Resource通配符路径:** 提供了类似于Ant风格的路径模式匹配,用于访问多个资源。 ### 5. Spring表达式语言(SpEL) - **SpEL概述:** 简介了SpEL的用途以及基本语法。 - **SpEL基础与语法:** 详细解释了SpEL...