閒談swagger2

我們在使用SpringBoot集成Swagger2中swagger-ui.html相關的所有前端靜態文件都在springfox-swagger-ui-2.4.0.jar裏面。

SpringBoot自動配置本身並不會把/swagger-ui.html這個路徑映射到對應的目錄META-INF/resources/下面。我們加上這個映射即可。

繼承WebMvcConfigurationSupport 複寫addResourceHandlers(registry)方法添加映射路徑並添加到spring容器中。

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

 如果你添加自定義攔截器,排除swagger映射端口

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 多個攔截器組成一個攔截器鏈
        // addPathPatterns 用於添加攔截規則
        // excludePathPatterns 用戶排除攔截
        registry.addInterceptor(HandlerInterceptor)
                .addPathPatterns("/**")
                //剔除自定義規則
                //剔除swagger
                .excludePathPatterns(
                        "/swagger-resources/**",
                        "/webjars/**",
                        "/v2/**",
                        "/swagger-ui.html/**"
                );

        super.addInterceptors(registry);
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章