前言
最近频繁被Swagger 3.0刷屏,官方表示这是一个突破性的变更,有很多的亮点,我还真不太相信,今天来带大家尝尝鲜,看看这碗汤到底鲜不鲜....
官方文档如何说?
Swagger 3.0有何改动?官方文档总结如下几点:
- 删除了对springfox-swagger2的依赖
- 删除所有@EnableSwagger2...注解
- 添加了springfox-boot-starter依赖项
- 移除了guava等第三方依赖
姑且看到这里,各位初始感觉如何?
既然人家更新出来了,咱不能不捧场,下面就介绍下Spring Boot如何整合Swagger 3.0吧。
Spring Boot版本说明
作者使用Spring Boot的版本是2.3.5.RELEASE
添加依赖
Swagger 3.0已经有了与Spring Boot整合的启动器,只需要添加以下依赖:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
复制代码
springfox-boot-starter做了什么?
Swagger 3.0主推的一大特色就是这个启动器,那么这个启动器做了什么呢?
记住:启动器的一切逻辑都在自动配置类中。
找到springfox-boot-starter的自动配置类,在/META-INF/spring.factories文件中,如下:
从上图可以知道,自动配置类就是OpenApiAutoConfiguration,源码如下:
@Configuration
@EnableConfigurationProperties(SpringfoxConfigurationProperties.class)
@ConditionalOnProperty(value = "springfox.documentation.enabled", havingValue = "true", matchIfMissing = true)
@Import({
OpenApiDocumentationConfiguration.class,
SpringDataRestConfiguration.class,
BeanValidatorPluginsConfiguration.class,
Swagger2DocumentationConfiguration.class,
SwaggerUiWebFluxConfiguration.class,
SwaggerUiWebMvcConfiguration.class
})
@AutoConfigureAfter({ WebMvcAutoConfiguration.class, JacksonAutoConfiguration.class,
HttpMessageConvertersAutoConfiguration.class, RepositoryRestMvcAutoConfiguration.class })
public class OpenApiAutoConfiguration {
}
复制代码
敢情这个自动配置类啥也没干,就光导入了几个配置类(@Import)以及开启了属性配置(@EnableConfigurationProperties)。
重点:记住OpenApiDocumentation