WebMvcConfigurationSupport配置拦截器的excludePathPatterns不生效

配置的拦截器:

@SpringBootConfiguration
public class MyConfig extends WebMvcConfigurationSupport{

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {       
        MyInterceptor myInterceptor= new MyInterceptor();
        registry.addInterceptor(myInterceptor).addPathPatterns("/**").excludePathPatterns("/myApi/custom/**");
    } 

}

application.properties中配置了:

server.servlet.context-path=/myApi/

controller中请求地址有aa和bb和custom/cc

请求地址: http://localhost:8080/myApi/aa 或者 http://localhost:8080/myApi/bb,都没有问题,拦截器生效,都会拦截,但请求http://localhost:8080/myApi/custom/cc也会拦截


就是配置的excludePathPatterns死活不生效,一顿乱搞,感觉配置的拦截器没问题啊,

最后把excludePathPatterns("/custom/**")这样,就可以了

 

但还是不明白为什么??

跟了一下代码,没有看懂,有哪位知道的还请指点一下,谢谢

WebMvcConfigurationSupport是一个Spring MVC的抽象基类,它提供了一些用于配置MVC框架的便利方法。如果你想要在Spring Boot应用中配置拦截器,你可以通过覆盖其`addInterceptors()`方法来添加自定义的`HandlerInterceptor`。 下面是一个例子,说明如何在WebMvcConfigurer接口的实现类中添加全局拦截器: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { // 创建一个全局拦截器 GlobalInterceptor interceptor = new GlobalInterceptor(); // 注册拦截器,可以传递一个特定路径前缀来限制拦截范围 registry.addInterceptor(interceptor).addPathPatterns("/api/*"); } // 自定义拦截器类 private static class GlobalInterceptor implements HandlerInterceptorAdapter { // 实现preHandle(), postHandle()和afterCompletion()方法来处理请求生命周期事件 } } ``` 对于Swagger 3(也称为Swagger 2.x)的接口开放,你需要配置Swagger的扫描路径以及文档信息。首先,你需要添加Swagger的依赖并启用它: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.0.0-M5</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>3.0.0-M5</version> </dependency> ``` 然后,在Spring Boot主类上添加@EnableSwagger2注解开启Swagger支持: ```java @SpringBootApplication @EnableSwagger2 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } // 如果需要生成API文档,可以在WebConfig中添加这个 @Configuration @EnableSwagger2WebMvc public class SwaggerConfig extends WebMvcDocumentationConfigurationSupport { @Override protected Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build(); } } ``` 在这个配置里,`createRestApi()`方法会告诉Swagger扫描所有的API资源。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值