方法一:
1,导入依赖该两个依赖 仅兼容以下 Spring Boot 版本
Spring Boot 2.1.x :通常能够正常工作
Spring Boot 2.2.x:较为稳定 但建议使用 Spring Boot 2.2.0 以上版本
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2.配置 Swagger ----- Config类
@Configuration
@EnableSwagger2 //开启 Swagger
public class SwaggerConfig {
//配置 Swagger 的 Docket Bean 实例
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo());
.enable() // 布尔值 配置是否启动 Swagger
.select() //Swagger 配置扫描接口
.apis(RequestHandlerSelectors.basePackage()))
//RequestHandlerSelectors 配置要扫描接口的方式
// basePackage():指定扫描的包 any():扫描全部 none():不扫描
// withClassAnnotation:扫描类上注解,参数是一个注解的反射
// withMethodAnnotation: 扫描方法上的注解
.path(PathSelectors.ant(""))
// 过滤 过滤不需要扫描的路径
.build()
}
//配置 Swagger 信息 = apiInfo
//只能通过构造器构造对象没有getter 和 setter 方法
private ApiInfo apiInfo() {
//作者信息:
Contact contact = new Contact("姓名","https://blog.csdn.net/m0_60985248?spm=1000.2115.3001.5343","xxxxxxxxxxx@163.com");
return new ApiInfo("Api Documentation-xuzexin",
"这个男人有点帅",
"1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList<VendorExtension>());
//参数依次是 title:文档标题 description:文档描述 version:版本
//termsOfServiceUrl:组织url
}
}
方式二:对于 Spring Boot 2.2 的更高版本建议升级到 Springdoc-openapi (支持 OpenAPI 3.0 标准)
1.导入依赖:
Springdoc-openapi 代替 springfox-swagger2 以及 springfox-swagger-ui
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.15</version>
</dependency>
2.通过 yml 或者 properties 文件进行配置
application.properties:
springdoc.api-docs.title=My API
springdoc.api-docs.description=This is a description of my API
springdoc.api-docs.version=OPENAPI_3_0
springdoc.api-docs.contact.name=Your Name
springdoc.api-docs.contact.email=your.email@example.com
springdoc.api-docs.license.name=Your License
springdoc.api-docs.license.url=https://opensource.org/licenses/MIT
# 配置扫描的包(Springdoc 2.0 及以上版本支持)
springdoc.packages-to-scan=com.example.api
application.yml:
springdoc:
api-docs:
title: My API
description: This is a description of my API
version: 1.0.0
contact:
name: Your Name
email: your.email@example.com
license:
name: Your License
url: https://opensource.org/licenses/MIT
# 配置扫描的包(Springdoc 2.0 及以上版本支持)
packages-to-scan: com.example.api
# 配置 OpenAPI 版本
version: OPENAPI_3_0
3.也可以可以通过创建一个配置类并使用 @OpenAPIDefinition 注解来设置:
@Configuration
@OpenAPIDefinition(info = @Info(
title = "My API",
version = "1.0.0",
description = "API documentation",
contact = @Contact(name = "Your Name", email = "your.email@example.com"),
license = @License(name = "Your License", url = "https://opensource.org/licenses/MIT")
))
public class OpenApiConfig {
// 这个类可以留空,注解会自动配置 OpenAPI
}