spring boot 2.7 集成 swagger 3
记录一下
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-boot-starterartifactId>
<version>3.0.0version>
dependency>
springfox:
documentation:
enabled: true
@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