springboot框架中filter过滤器的urlPatterns的匹配源码

如下图所示,我使用@WebFilter注解的方式定义了一个过滤器,同时定义了过滤器的过滤条件

urlPatterns为/*,可能很多人都知道filter的/*代表所有URL都匹配,但是源码在哪里呢

springboot框架中filter过滤器的urlPatterns的匹配源码_第1张图片

先打断点看一下调用链

springboot框架中filter过滤器的urlPatterns的匹配源码_第2张图片

然后跟着调用链慢慢点,看看哪里开始出现了过滤器,这条链路已经出现了,那么说明肯定是在这个之前进行过滤器注册的

springboot框架中filter过滤器的urlPatterns的匹配源码_第3张图片

往上翻就能看到创建过滤器链条的

springboot框架中filter过滤器的urlPatterns的匹配源码_第4张图片

然后我们就找到了filter匹配的具体位置,里面有match方法,判断url和urlpattern是否匹配

org.apache.catalina.core.ApplicationFilterFactory#createFilterChain

springboot框架中filter过滤器的urlPatterns的匹配源码_第5张图片

核心匹配方法,直接断点打到这里进行调试就好

org.apache.catalina.util.FilterUtil#matchFiltersURL(java.lang.String, java.lang.String)

springboot框架中filter过滤器的urlPatterns的匹配源码_第6张图片

你可能感兴趣的:(springboot框架学习,spring,boot,后端,java,filter,匹配源码)