SpringBoot2.6.x及以上版本整合swagger文档

时间:2023-02-26 16:07:30

SpringBoot的版本更新中引入了一些新的特性,并且Swagger的版本更新也同样引入了很多新的东西,这样就造成了许多配置无法实现一一对应的情况,因此高版本的SpringBoot集成Swagger需要添加一些额外的配置。

1、添加依赖

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

2、添加配置类

为了代码结构清晰,可以新建一个config包用于存放当前以及之后可能有的所有的配置类信息。

配置信息部分,可以根据项目的实际需求选择拦截不同路径下的api请求

@Configuration
public class SwaggerConfig {
    @Bean
    public Docket docket() {
        // 采用stream流的方式将相关的配置一一写入,该配置为拦截所有路径下的所有api请求
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().build();
    }
}

3、添加配置

SpringBoot2.6.x之后的版本的默认匹配策略为path-pattern-matcher,需要手动修改path-pattern-matcher规则,否则会报错

# 修改swagger的路径匹配配置,使其兼容新版的SpringBoot
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

4、页面测试

访问如下链接即可看到swagger集成后的结果(注意修改端口号)

http://localhost:8080/swagger-ui/index.html