- 导入pom
两个版本必须一致
<dependencies>
...
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
2编写swaggercionfig
package com.yh.swagger.config;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2 //开启swagger2
public class swaggerConfig {
}
//如果@EnableSwagger2 无响应,则需调整版本
3.配置基本信息swagger 访问(http://localhost:8080/swagger-ui.html#/)
package com.yh.swagger.config;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
@Configuration
@EnableSwagger2 //开启swagger2
public class swaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo());
/* .select()
//为当前包路径
.apis(RequestHandlerSelectors.basePackage("com.yh.Controller"))
.paths(PathSelectors.any())
.build();*/
// return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();
}
//构建 api文档的详细信息函数,注意这里的注解引用的是哪个
private ApiInfo apiInfo() {
Contact yh = new Contact("yh", "127.0.0.1", "1511502028@qq.com");
return new ApiInfo(
"Spring Boot 使用 Swagger2 记录",
"API 描述",
"1.0",
"",
yh,
"dwew",
"",
new ArrayList()
);
/* //页面标题
.title("Spring Boot 使用 Swagger2 记录")
//创建人
.contact(new Contact("yh", "127.0.0.1", "1511502028@qq.com"))
//版本号
.version("1.0")
//描述
.description("API 描述")
.build();*/
}
}
3.swagger配置扫描接口
package com.yh.swagger.config;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
@Configuration
@EnableSwagger2 //开启swagger2
public class swaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//关闭访问不到ui界面
// .enable(false)
.select()
//为当前包路径
.apis(RequestHandlerSelectors.basePackage("com.yh.Controller"))
//过滤路径
// .paths(PathSelectors.any())
.build();
// return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();
}
//构建 api文档的详细信息函数,注意这里的注解引用的是哪个
private ApiInfo apiInfo() {
Contact yh = new Contact("yh", "127.0.0.1", "1511502028@qq.com");
return new ApiInfo(
"Spring Boot 使用 Swagger2 记录",
"API 描述",
"1.0",
"",
yh,
"dwew",
"",
new ArrayList()
);
/* //页面标题
.title("Spring Boot 使用 Swagger2 记录")
//创建人
.contact(new Contact("yh", "127.0.0.1", "1511502028@qq.com"))
//版本号
.version("1.0")
//描述
.description("API 描述")
.build();*/
}
}
4。问题 如何在正式环境关闭swagger
1.先判断是那种环境
2.enable=false
{
//设置swagger要显示的环境
Profiles p=Profiles.of("dev");
//判断是否是自己要设置的环境
boolean flag = Environment.acceptsProfiles(p);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//关闭访问不到ui界面
.enable(flag)
.select()
//为当前包路径
.apis(RequestHandlerSelectors.basePackage("com.yh.Controller"))
//过滤路径
// .paths(PathSelectors.any())
.build();
// return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();
}
5只要接口中存在实体类,就会被扫描到swagger中
package com.yh.swagger.pojo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel("用户实体类")
public class User {
@ApiModelProperty("姓名")
public String name;
@ApiModelProperty("性别")
public String sex;
}