`

Spring之Interceptor之path patterns路径匹配规则

    博客分类:
  • S2SH
阅读更多
Spring之Interceptor之path patterns路径匹配规则


一、简单而言:

一个*:只匹配字符,不匹配路径(/)
两个**:匹配字符,和路径(/)


二、详细及更多:

public class AntPathMatcher
extends java.lang.Object
implements PathMatcher

PathMatcher implementation for Ant-style path patterns.

Part of this mapping code has been kindly borrowed from Apache Ant.

The mapping matches URLs using the following rules:

    ? matches one character
    * matches zero or more characters
    ** matches zero or more directories in a path
    {spring:[a-z]+} matches the regexp [a-z]+ as a path variable named "spring"

Examples

    com/t?st.jsp — matches com/test.jsp but also com/tast.jsp or com/txst.jsp
    com/*.jsp — matches all .jsp files in the com directory
    com/**/test.jsp — matches all test.jsp files underneath the com path
    org/springframework/**/*.jsp — matches all .jsp files underneath the org/springframework path
    org/**/servlet/bla.jsp — matches org/springframework/servlet/bla.jsp but also org/springframework/testing/servlet/bla.jsp and org/servlet/bla.jsp
    com/{filename:\\w+}.jsp will match com/test.jsp and assign the value test to the filename variable

Note: a pattern and a path must both be absolute or must both be relative in order for the two to match. Therefore it is recommended that users of this implementation to sanitize patterns in order to prefix them with "/" as it makes sense in the context in which they're used.



三、例子:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {


/**

     - /**: 匹配所有路径
     - /admin/**:匹配 /admin/ 下的所有路径
     - /secure/*:只匹配 /secure/user,不匹配 /secure/user/info

 */


    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LocaleInterceptor());
        
        registry.addInterceptor(new ThemeInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/admin/**");

        registry.addInterceptor(new SecurityInterceptor())
        .addPathPatterns("/secure/*", "/admin/**", "/profile/**");
    }
}








引用:

1.
https://stackoverflow.com/questions/48306597/spring-mvc-interceptor-pattern
2.
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html


























-
分享到:
评论

相关推荐

    spring mvc路径匹配原则详解

    该标签的 `path` 属性用来指定需要拦截的路径,例如 `<mvc:interceptor><mvc:mapping path="/" /><bean class="com.i360r.platform.webapp.runtime.view.interceptor.GenericInterceptor" /></mvc:interceptor>`,...

    springmvc-interceptor

    在Spring MVC框架中,拦截器(Interceptor)是一个至关重要的组件,它允许开发者在请求处理之前、之后或在处理过程中执行自定义逻辑。拦截器可以用于实现日志记录、权限检查、性能统计、事务管理等多种功能,极大地...

    springAOP与Interceptor

    SpringAOP与SpringMVC拦截器两种方式实现权限管控,前台xml读取配置根据登录用户判断button是否enable

    spring boot jwt Interceptor 例子

    spring boot jwt 和 interceptor的例子。 其中jwt的例子网上有很多,但是都是要数据库支持,这个只是用假数据模拟,不需要数据库支持。另外还有一个拦截器的简单例子。已经在sts 4 测试通过。

    spring-method-interceptor:Spring Handler Interceptor反思Web方法

    本示例——"spring-method-interceptor"着重展示了如何利用Spring Boot 2.x和Spring Web MVC实现一个自定义的`HandlerInterceptor`,用于拦截带有特定注解的方法调用。 首先,`HandlerInterceptor`是Spring MVC中的...

    spring boot加入拦截器Interceptor过程解析

    "Spring Boot 中的拦截器Interceptor 配置和使用详解" Spring Boot 框架提供了拦截器Interceptor机制,用于在请求处理前、后执行某些操作。拦截器Interceptor可以用来实现身份验证、日志记录、缓存、权限控制等...

    SpringBoot拦截器原理解析及使用方法

    这样就配置了一个拦截器,它会对所有的路径进行拦截,但是排除了/userLogin、静态资源路径等。拦截器的作用就是检查用户是否登录,如果用户没有登录,则重定向到登录页面。 以上就是对SpringBoot拦截器原理解析及...

    自己spring boot 拦截器

    在Spring Boot应用中,拦截器(Interceptor)是Spring MVC框架的一部分,用于在请求处理之前、之后或在实际处理过程中执行一些预定义的任务。这通常包括权限检查、日志记录、性能监控等。自定义拦截器可以帮助我们更...

    spring-Interceptor-filter-aop:spring mvc和tomcat源码分析

    本文将深入探讨"spring-Interceptor-filter-aop:spring mvc和tomcat源码分析"这一主题,旨在揭示这两个核心组件的内部工作原理。 **Spring MVC** Spring MVC是Spring框架的一部分,它提供了一个用于构建Web应用程序...

    Spring Boot Aspect 切面 AOP 拦截器 Interceptor 监控control请求耗时

    首先,我们来看看标题提到的"Interceptor",这是Spring MVC中的一个关键组件。拦截器(HandlerInterceptor)用于在请求被实际处理之前和之后执行一些额外的任务,如记录请求日志、性能监控等。在Spring Boot中,我们...

    Interceptor框架的实现

    Interceptor框架在软件开发中起着关键作用,尤其是在Java企业级应用中,如Spring AOP(面向切面编程)和各种框架中的拦截器机制。本文将深入探讨Interceptor框架的实现,主要涉及Java代理和反射技术。 首先,理解...

    Spring MVC Interceptor 实现性能监控的功能代码

    在Spring MVC中,Interceptor(拦截器)扮演着关键角色,它允许我们在请求处理之前、处理过程中以及处理之后执行自定义逻辑。在本场景中,我们使用Interceptor来实现性能监控功能,以追踪每个URL的执行时间。 `...

    postman interceptor

    Postman Interceptor是一款非常实用的工具,主要用于提升API测试与开发的效率,它是由Postman公司推出的配套插件。在Postman这个强大的API开发和测试环境中,Interceptor扮演着不可或缺的角色。下面将详细介绍...

    Postman-Interceptor-V1.1.2.zip

    这个"Postman-Interceptor-V1.1.2.zip"文件就是Interceptor的安装包,版本为1.1.2,适用于Chrome浏览器。 Interceptor的主要功能包括: 1. **实时同步**: 当在Chrome浏览器中进行网页操作时,Interceptor可以捕获...

    struts2 spring ibatis整合以及拦截器日志记录

    Struts2、Spring和iBatis是Java Web开发中三个重要的框架,它们分别负责MVC模式中的Action控制、依赖注入及持久层操作。本话题主要探讨如何将这三个框架整合在一起,实现一个高效、灵活的Web应用程序,并利用拦截器...

    Ajax Interceptor

    安装Ajax Interceptor 扩展后,用户通常需要配置拦截规则,定义哪些请求需要被拦截,以及如何处理这些拦截的请求。这可能包括设置匹配特定URL模式的规则,或者基于HTTP方法(GET、POST等)或HTTP头来筛选请求。一旦...

    spring-cache-interceptors:SpringFramework的缓存拦截器

    弹簧缓存拦截器 :leaf_fluttering_in_wind: SpringFramework的缓存拦截器 :copyright:Pongnathee Kluaythong / 123RF.COM要求Java 8或更高版本Spring框架支持的Spring Framework版本Spring Framework版本Spring Boot...

    浅谈SpringMVC中Interceptor和Filter区别

    Interceptor的配置可以通过在springmvc配置文件中添加节点来实现,例如:<mvc:interceptors> <bean class="cn.appsys.testInterceptor"></bean>//拦截所有请求 <mvc:interceptor> <mvc:mapping path="/manager/...

Global site tag (gtag.js) - Google Analytics