springboot配置swagger拦截器

需要实现WebMvcConfigurer接口

/**
     * addResourceHandlers:静态资源
     * 比如,我们想自定义静态资源映射目录的话,只需重写addResourceHandlers方法即可。
     * 注:如果继承WebMvcConfigurationSupport类实现配置时必须要重写该方法,
     * addResoureHandler:指的是对外暴露的访问路径
     * addResourceLocations:指的是内部文件放置的目录
     *
     * @param registry
     */

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");
    }
}

如果嫌配麻烦也有swagger的starter

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-boot-starter</artifactId>
  <version>3.0.0</version>
</dependency>

 

starter已经实现拦截器所以自己不用配置了

public class SwaggerUiWebMvcConfigurer implements WebMvcConfigurer {
    private final String baseUrl;

    public SwaggerUiWebMvcConfigurer(String baseUrl) {
        this.baseUrl = baseUrl;
    }

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        String baseUrl = StringUtils.trimTrailingCharacter(this.baseUrl, '/');
        registry.addResourceHandler(new String[]{baseUrl + "/swagger-ui/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjars/springfox-swagger-ui/"}).resourceChain(false);
    }

    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController(this.baseUrl + "/swagger-ui/").setViewName("forward:" + this.baseUrl + "/swagger-ui/index.html");
    }
}

如果拦截器配置了还访问不了访问可以看我这篇文章:点击我

 

posted @ 2022-03-30 11:10  依笑  阅读(198)  评论(0)    收藏  举报