1、引入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
2、SwaggerConfig配置
package com.mgx.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author mgx
* @date 2023/9/18 10:24 AM
*/
@Configuration
@EnableSwagger2
@ConditionalOnProperty(name = "swagger.enable",havingValue = "true")
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//是否开启 (true 开启 false隐藏。生产环境建议隐藏)
//.enable(false)
.select()
//扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api
.apis(RequestHandlerSelectors.basePackage("com.mgx"))
//指定路径处理PathSelectors.any()代表所有的路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//设置文档标题(API名称)
.title("SpringBoot中使用Swagger2接口规范")
//文档描述
.description("供前后端进行联调的文档")
//服务条款URL
.termsOfServiceUrl("http://localhost:8080/")
//版本号
.version("1.0.0")
.build();
}
}
解释说明:
@Configuration为配置类注解,springboot启动时会进行加载。
@EnableSwagger2为swagger注解,加上该注解时,使用swagger2才会生效。
@ConditionalOnProperty(name = "swagger.enable",havingValue = "true"),该注解也是springboot中用于配置类的注解,主要作用为条件配置,例如该表达的意思为:在配置文件中名为swagger.enable为ture时,加载该类。
3、yml配置
4、添加swagger的注解
解释说明(各注解具体内容,可自行点源码查看):
@ApiModel:用在模型类上;
@ApiModelProperty:用在模型属性上;
@Api:用在controller上,对controller进行注释;
@ApiOperation:用在API方法上,对该API做注释,说明API的作用;
@ApiParam:API操作的参数对象的关键字。
5、查看swagger效果
启动程序,swagger文档地址:http://127.0.0.1:8080/swagger-ui.html#/
(1)配置类型swagger.enable为true时,正常访问,我们看到api注解均已生效
(2)配置类型swagger.enable为false时