1. pom引入jar包
<!-- 引入swgger2 自动生成接口文档 staet -->
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- swgger2 end -->
2.创建Swagger2Configuration.java
/**
* swgger2 配置类
*/
@Configuration
@EnableSwagger2
//是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置
@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
public class Swagger2Configuration {
private static String SWAGGER_SCAN_BASE_PACKAGE;
private static String VERSION;
@Value("${swagger.SWAGGER_SCAN_BASE_PACKAGE}")
public void setSwaggerScanBasePackage(String swaggerScanBasePackage) {
SWAGGER_SCAN_BASE_PACKAGE = swaggerScanBasePackage;
}
@Value("${swagger.VERSION}")
public void setVERSION(String VERSION) {
Swagger2Configuration.VERSION = VERSION;
}
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 为当前包路径
.apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE))// 包扫描路径
.paths(PathSelectors.any())// 可以根据url路径设置哪些请求加入文档,忽略哪些请求
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Mr.Cheng Blog") //设置文档的标题
.description("Mr.Cheng Blog API 接口文档") // 设置文档的描述
.version(VERSION) // 设置文档的版本信息-> 1.0.0 Version information
.termsOfServiceUrl("http://www.baidu.com") // 设置文档的License信息->1.3 License information
.build();
}
}
配置文件配置(yml配置)
# swagger2 接口包扫描路径
swagger:
SWAGGER_SCAN_BASE_PACKAGE: com.chengdong.blog
VERSION: 1.0.0
# 是否启用swagger
enable: true
通过使用@Configuration 注解,让spring自动加载配置;
通过使用@EnableSwagger2 注解启动swagger2;
通过使用@ConditionalOnProperty(name = “swagger.enable”, avingValue = “true”) 是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置;
成员方法 createRestApi 函数创建 Docket 的Bean之后,apiInfo() 用来创建该 Api 的基本信息(这些基本信息会展现在文档页面中)。select() 函数返回一个 ApiSelectorBuilder实例用来控制哪些接口暴露给 Swagger 来展现,本例采用指定扫描的包路径来定义,Swagger 会扫描该包下所有 Controller 定义的 API,并产生文档内容(除了被 @ApiIgnore 指定的请求)。
版权声明:本文为weixin_44618291原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。