`

Ant风格路径表达式

阅读更多

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路径匹配器,Ant风格的URL.md

    AntPathMatcher是Spring框架中用于路径匹配的一个工具类,其核心功能是提供了对Ant风格路径模式的匹配。所谓Ant风格的路径模式,是借鉴自Apache Ant构建工具的一种路径表达方式,它允许使用特定的通配符来进行模式...

    acegi原理详细剖析

    1. **URL资源访问控制**:Acegi支持基于正则表达式或Ant风格路径表达式的URL模式定义,使得特定权限的用户能够访问相应的URL资源,如限制非授权用户访问敏感页面。 2. **业务类方法访问控制**:所有Spring容器中的...

    ant-jakarta-oro-1.6.1.jar.zip

    Jakarta ORO,全称为Open Repository for Java Text Processing,是一个用于Java的正则表达式库,源自Perl风格的模式匹配。它提供了一个API,允许开发者在Java应用程序中进行复杂文本处理和模式匹配,包括分词、搜索...

    ant-apache-regexp-1.6.4.jar.zip

    例如,你可以创建一个Ant任务,匹配所有以".java"结尾的文件,并使用正则表达式检查它们的编码风格是否符合项目规范。此外,还可以用它来清理日志文件,删除或替换不需要的信息。 总结来说,Ant Apache Regexp ...

    SpringCloud实战小贴士之Zuul的路径匹配

    在本篇文章中,我们将详细介绍Zuul的路径匹配机制,包括Ant风格的路径表达式、路由匹配算法等方面的知识点。 路径匹配的Ant风格定义 ----------------------------- 在Zuul中,路由匹配的路径表达式采用了Ant风格...

    ant ftp需要的jar

    Jakarta ORO提供了一套强大的Perl5风格的正则表达式引擎,使得Ant在处理文件名或其他字符串时能进行复杂过滤和操作。 为了在Ant构建脚本中使用FTP任务,你需要在`build.xml`文件中引入这些库,并配置FTP任务。例如...

    js匹配网址url的正则表达式集合

    通过上述示例可以看出,为了能够有效地验证URL,所编写的正则表达式需要考虑到各种URL格式的可能性,如协议类型、域名、端口号、路径和查询参数等。开发者可以根据实际需求对正则表达式进行适当的调整和优化,以确保...

    ant实现ftp上传需要的jar包

    首先,jakarta-oro-2.0.8.jar是 Jakarta ORO 库的一个版本,它提供了Perl5风格的正则表达式引擎。虽然在Ant的FTP任务中,这个库并不是直接用于文件传输,但它可能用于处理或验证文件路径、URL等字符串,因为Ant的...

    ant-apache-regexp-1.6.3.jar.zip

    开发者可以将这个JAR文件添加到他们的项目类路径中,以便在Ant构建脚本中使用正则表达式相关的功能。 "ant.license.txt"文件通常包含Apache Ant的许可信息,这通常是开源软件的许可证文本,详细说明了软件的使用、...

    ant-jakarta-regexp-1.6.1.jar.zip

    **Jakarta Regexp** 是Apache软件基金会的一个子项目,它提供了Java版的Perl风格的正则表达式引擎。Jakarta Regexp库允许Ant在执行构建任务时进行复杂的字符串匹配和替换操作,极大地扩展了Ant在处理文本方面的功能...

    ant-apache-oro-1.6.2.jar.zip

    Oro库提供了Perl5风格的正则表达式引擎,使得开发者可以在Java程序中方便地进行模式匹配、分割、替换等操作,极大地提高了文本处理的灵活性和效率。 1. **Oro的主要特性**: - 支持Perl5语法:包括元字符、字符类...

    Jenkins+SVN+Ant持续集成环境配置笔记

    - 配置表达式(如 */3****),表示每3分钟构建一次。 5. **构建环境**: - 此部分根据实际情况配置,一般不涉及具体代码变更。 6. **构建过程**: - 选择 “Invoke Ant”。 - 在 BuildFile 位置输入 build.xml...

    基于springboot,ant-design-vue-pro的简易后台管理系统.zip

    而Ant-Design-Vue-Pro作为蚂蚁金服推出的企业级UI解决方案,提供了丰富的组件和优雅的设计风格,为前端开发带来便利。 一、SpringBoot基础 1.1 SpringBoot简介:SpringBoot是Spring框架的简化版本,它内置了Tomcat...

    PathMatchers:Path断言的Matcherclass

    这些Matcher类能够根据Ant风格或正则表达式对路径进行匹配。 1. **AntPathMatcher**: - Ant风格的路径匹配是一种广泛使用的模式,它源自Apache Ant项目。例如,`/users/*`可以匹配所有以`/users/`开头的路径。 -...

    Acegi原理

    这包括使用正则表达式或Ant风格的路径表达式来定义URL模式,精确控制哪些用户可以访问哪些资源。 2. **业务类方法访问控制**:Acegi能够控制Spring容器中Bean的所有方法调用权限,确保只有授权用户才能执行特定的...

    apache ftp工具所需jar

    Jakarta ORO是一个强大的正则表达式引擎,为Java开发者提供了Perl风格的正则表达式处理能力。在Apache FTP工具中,可能用到这个库来处理和验证FTP服务器上的文件路径或URL,或者进行文本匹配操作。 2. `commons-io-...

    MyBatis-Spring配置的讲解

    支持逗号、分号、制表符或换行符分隔的多个路径,也可以使用Ant风格的路径表达式。 - **configLocation属性**:如果基础的`SqlSessionFactoryBean`配置无法满足需求,可以通过此属性指定自定义的MyBatis全局配置...

    Spring杂谈

    - **Resource通配符路径**:支持Ant风格的路径模式匹配。 ### Spring表达式语言(SpEL) Spring表达式语言是一个功能强大的表达式语言,它支持在运行时查询和操作对象图。 - **SpEL基础**:提供了一套表达式语法...

    Acegi框架介绍 acegi安全与认证

    Acegi允许开发者通过正则表达式或Ant风格的路径定义,控制哪些URL可被授权用户访问。例如,所有用户可以访问登录页面,而只有特定用户可以访问特定的管理页面。这种控制方式使得系统能够灵活地管理不同级别的用户...

    跟我学Spring,Spring3学习资料

    - **Resource通配符路径:** 提供了类似于Ant风格的路径模式匹配,用于访问多个资源。 ### 5. Spring表达式语言(SpEL) - **SpEL概述:** 简介了SpEL的用途以及基本语法。 - **SpEL基础与语法:** 详细解释了SpEL...

Global site tag (gtag.js) - Google Analytics