addInterceptor、excludePathPatterns、excludePathPatterns
时间: 2023-10-03 17:02:27 浏览: 116
addInterceptor是WebMvcConfigurer接口中的一个方法,用于添加拦截器。它接受一个HandlerInterceptor类型的参数,这个参数就是我们自定义的拦截器。调用addInterceptor方法后,我们自定义的拦截器就会被添加到拦截器链中,拦截器会按照添加的顺序依次执行。
excludePathPatterns是HandlerInterceptorRegistration接口的一个方法,用于排除一些URL不被拦截器拦截。这个方法接受一个或多个字符串参数,表示需要排除的URL。在上面的代码中,我们使用excludePathPatterns方法将/websocket/**请求排除在拦截器之外,这样就保证了websocket请求不会被拦截器拦截。
最后,excludePathPatterns方法还有一个重载方法,它接受一个String数组参数,可以一次性排除多个URL。
相关问题
public void addInterceptors(InterceptorRegistry registry){ registry.addInterceptor(new MVCInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/show_login") .excludePathPatterns("/check_login_mybatis") .excludePathPatterns("/no_privilege") .excludePathPatterns("/register") .excludePathPatterns("/js/*") .excludePathPatterns("/css/*") .excludePathPatterns("/image/*") .excludePathPatterns("/css/img/*") .excludePathPatterns("/error") .excludePathPatterns("/css/font/*") .excludePathPatterns("/*.js") .excludePathPatterns("/*.html") ; }
这段代码是在Spring MVC框架中注册拦截器,其中添加了一个MVCInterceptor拦截器,该拦截器会拦截所有的请求("/**"),但排除了一些特定的路径,如登录、注册、静态资源等。
拦截器可以在请求到达Controller之前或之后对请求进行处理,用于实现一些通用的功能,例如身份验证、日志记录等。在Spring MVC中,可以通过实现HandlerInterceptor接口来自定义拦截器,并通过InterceptorRegistry进行注册。在注册时,可以指定拦截的路径和排除的路径,以及拦截器的优先级等。
excludePathPatterns
excludePathPatterns是在配置拦截器时用来排除某些路径不被拦截的方法。在上述引用中提到了两种配置excludePathPatterns的方法。第一种是在拦截器配置类中直接使用excludePathPatterns方法将要排除的路径添加进去,如addInterceptor(myInterceptor).addPathPatterns("/**").excludePathPatterns("/**/login","/**/register","/download/**")。第二种是在WebMvcConfigurerAdapter的子类中重写addInterceptors方法,在其中使用excludePathPatterns方法进行路径排除的配置,如@Configuration public class InterceptorConfig extends WebMvcConfigurerAdapter { @Autowired private MyInterceptor myInterceptor; @Override public void addInterceptors(InterceptorRegistry registry){ registry.addInterceptor(myInterceptor).addPathPatterns("/**").excludePathPatterns("/**/login","/**/register","/survey-project/download/**"); } }。这两种方法可以根据具体的需求选择使用。
阅读全文