spring boot 2.7 集成 swagger 3
记录一下

  1. 依赖
    spring boot 版本 2.7.3
 		<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
  1. 配置文件,生产环境关闭,测试环境开启
springfox:
  documentation:
    enabled: true
  1. 配置 SwaggerConfig
@EnableOpenApi
@Configuration
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30)
            .apiInfo(apiInfo())
            .groupName("Normal")
            .enable(true)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.tcoding.demo.helloworld.controller"))
            .paths(PathSelectors.any())
            .build()
            .pathMapping("/");
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            //标题
            .title("Spring Boot中使用Swagger3构建RESTful APIs")
            //简介
            .description("")
            //服务条款
            .termsOfServiceUrl("")

            //作者个人信息
            .contact(new Contact("tc", "", "1043023220@qq.com"))
            //版本
            .version("1.0").build();
    }
}



spring MVC配置。不配这个起不来,就翻了一下swagger的代码

@Configuration
public class SpringMmcConfig extends DelegatingWebMvcConfiguration {

}

spring.factories 文件内容是,自动引入 OpenApiAutoConfiguration 配置类
在这里插入图片描述

OpenApiAutoConfiguration 引入 SwaggerUiWebMvcConfiguration在这里插入图片描述
SwaggerUiWebMvcConfiguration 注入了 SwaggerUiWebMvcConfigurer

在这里插入图片描述
SwaggerUiWebMvcConfigurer里面设置静态资源路径
在这里插入图片描述

SwaggerUiWebMvcConfiguration 里面初始化的bean 在 DelegatingWebMvcConfiguration里用到了

在这里插入图片描述

如果不使用

@Configuration
public class SpringMmcConfig extends DelegatingWebMvcConfiguration {

}

这个配置,则资源静态化配置不生效

源码连接

https://github.com/googalAmbition/hello-spring-boot/tree/main/04-swagger
3的访问地址是: /swagger-ui/index.html
2的访问地址是 : /swagger-ui.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐