SpringBoot集成Swagger2配置及出现的问题记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_39456789/article/details/86673628

配置:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.8.0</version>
</dependency>
@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.myBlog.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        Contact contact = new Contact("我的博客", "", "");
        return new ApiInfoBuilder()
                .title("我的博客接口文档")
                .description("我的博客接口文档")
                .version("1.0")
                .contact(contact)
                .build();
    }
}

出现问题:

1.页面404

2.后台报错

问题原因:

因为swagger-ui.html相关的所有前端静态文件都在springfox-swagger-ui-x.x.x.jar里面,在yml文件中配置了mvc.static-path-pattern: /static/** 导致swagger-ui.html相关的所有前端静态文件映射不到。

解决方案:

1. mvc.static-path-pattern: /static/** 是springboot默认配置,可以删掉,如果有修改默认配置,选择解决方案2

2.自定义静态资源映射目录,addResoureHandler指的是对外暴露的访问路径,addResourceLocations指的是文件放置的目录

@Configuration
public class WebConfig implements WebMvcConfigurer{
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
    }

如何在生产环境禁用swagger

https://blog.csdn.net/huo065000/article/details/84944309

猜你喜欢

转载自blog.csdn.net/sinat_39456789/article/details/86673628