在社区的推动下,Springfox3.0于去年7月发布。最近终于有时间和小伙伴们聊一聊新版本的新变化了。这次版本升级估计等了很久,毕竟上个版本是两年前发布的了。新版本还是有很多好玩的,一起来看看吧。支持OpenAPI什么是OpenAPI?OpenAPI规范其实就是之前的Swagger规范。它是一种RESTAPI描述格式。它通过既定的规范来描述文档接口。是业界真正的API文档标准,可以用YAML或者JSON来描述。.包括以下内容:接口(/users)及各接口的操作(GET/users,POST/users)输入参数及响应内容认证方式一些必要的联系方式,license等。更多关于OpenAPI的信息,有兴趣的小伙伴可以在GitHub上查看:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md依赖于之前使用的2.9.2这个版本,一般来说,我们可能需要添加以下两个依赖项:.springfoxspringfox-swagger-ui2.9.2这两个,一个是生成接口文件(JSON数据),另一个是用于展示JSON的可视化。3.0版本我们就不用那么麻烦了,一个starter就可以搞定:io.springfoxspringfox-boot-starter3.0。0与SpringBoot中的其他启动器一样,springfox-boot-starter依赖项启用零配置和自动配置支持。也就是说,如果你没有其他特殊需求,只需要添加这个依赖,接口文档就会自动生成。接口地址3.0中的接口地址也和以前不同了。以前我们在2.9.2主要访问了两个地址:文档接口地址:http://localhost:8080/v2/api-docs文档页面地址:http://localhost:8080/swagger-ui.html现在在3.0,这两个地址也变了:文档接口地址:http://localhost:8080/v3/api-docs文档页面地址:http://localhost:8080/swagger-ui/index.html,尤其是文档页面地址,如果用3.0,访问上一个页面,会报404。注解旧的注解可以继续使用,但在3.0中提供了一些额外的注解。比如我们可以用@EnableOpenApi代替旧版本的@EnableSwagger2。话是这么说,但是在实际体验中,宋哥觉得@EnableOpenApi注解的作用并不明显,加不加都无所谓。翻阅源码,@EnableOpenApi注解的主要作用是导入OpenApiDocumentationConfiguration配置类,如下:@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME)@Target(value={java.lang.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})publicclassOpenApiAutoConf从iguration{}可以看出,自动化配置类中也引入了OpenApiDocumentationConfiguration,所以一般情况下,其实不需要添加@EnableOpenApi注解。根据OpenApiAutoConfiguration上@ConditionalOnProperty条件注解中的定义,我们发现如果在application.properties中设置了springfox.documentation.enabled=false,那么swagger功能是关闭的,此时不会执行自动配置类.这时候可以通过@EnableOpenApi注解导入OpenApiDocumentationConfiguration配置类。从技术上讲,逻辑是这样的,但是在应用中没有找到这样的需求(就是在application.properties中关闭swagger,然后通过@EnableOpenApi注解开启)。本文转载自微信公众号《江南的一场小雨》,可通过以下二维码关注。转载本文请联系江南一点鱼公众号。