Springboot 集成swagger2
1.创建boot项目
2.导入依赖 pom
<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>
3.添加配置类
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {
}
此时访问页面测试一下http://localhost:8080/swagger-ui.html,就可以看到下面得样子
4.配置swagger得基本信息,在SwaggerConfig 中添加bean
// 配置Swagger得 Docket bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo());
}
//配置swagger信息
private ApiInfo apiInfo() {
return new ApiInfo(
"Sagger 练习 title",
"这是描述",
"版本号:1.0",
"url => localhost:8080/",
new Contact("草莓sir", "", ""), // 作者信息
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
);
}
重启项目会看到如下
5. swagger配置扫描接口 修改配置类
Docket.select()
// 配置Swagger得 Docket bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 配置扫描接口的方式
//basePackage 扫描包
// any 扫描所有
// withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
// withMethodAnnotation 扫描方法上得注解
.apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
//paths 过滤什么路径下得
// .paths(PathSelectors.ant("/com.*"))
.build();
}
6.配置是否启动swagger
Docket.enable()
// 配置Swagger得 Docket bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
// 配置是否启动 swagger
.enable(false)
.select()
// 配置扫描接口的方式
//basePackage 扫描包
// any 扫描所有
// withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
// withMethodAnnotation 扫描方法上得注解
.apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
//paths 过滤什么路径下得
// .paths(PathSelectors.ant("/com.*"))
.build();
}
禁用!
配置swagger 在生产环境下使用
@Bean
public Docket docket(Environment environment) {
// 获取项目环境
Profiles profiles = Profiles.of("dev");
// 判断是否存在
boolean isEnable = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
// 配置是否启动 swagger
.enable(isEnable)
.select()
// 配置扫描接口的方式
//basePackage 扫描包
// any 扫描所有
// withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
// withMethodAnnotation 扫描方法上得注解
.apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
//paths 过滤什么路径下得
// .paths(PathSelectors.ant("/com.*"))
.build();
}
配置文档分组
Docket.groupName()
@Bean
public Docket docket(Environment environment) {
// 获取项目环境
Profiles profiles = Profiles.of("dev");
// 判断是否存在
boolean isEnable = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("分组1")
// 配置是否启动 swagger
.enable(isEnable)
.select()
// 配置扫描接口的方式
//basePackage 扫描包
// any 扫描所有
// withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
// withMethodAnnotation 扫描方法上得注解
.apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
//paths 过滤什么路径下得
// .paths(PathSelectors.ant("/com.*"))
.build();
}
配置多个分组
使用多个Docket 示例
@Bean
public Docket docket1(Environment environment) {
return new Docket(DocumentationType.SWAGGER_2).groupName("分组2");
}
// 配置Swagger得 Docket bean实例
@Bean
public Docket docket(Environment environment) {
// 获取项目环境
Profiles profiles = Profiles.of("dev");
// 判断是否存在
boolean isEnable = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
// 配置分组
.groupName("分组1")
// 配置是否启动 swagger
.enable(isEnable)
.select()
// 配置扫描接口的方式
//basePackage 扫描包
// any 扫描所有
// withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
// withMethodAnnotation 扫描方法上得注解
.apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
//paths 过滤什么路径下得
// .paths(PathSelectors.ant("/com.*"))
.build();
}
简单集成项目demo
Gitee