Version: Next

Swagger配置扫描接口

Docket.select().apis(RequestHandlerSelectors).build()方法

RequestHandlerSelectors指定要扫描的方式

  • basePackge()——指定扫描包
  • any()——扫描全部
  • none()——都不扫描
  • withClassAnnotation(注解.class)
  • withMethodAnnotation(注解.class)

Docket.select().paths(PathSelectors).build()方法

PathSelectors指定要过滤的路由

指定要过滤的路由

  • ant()——指定路由
  • any()——扫描全部
  • none()——都不扫描
  • regex——正则表达式
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
//配置Swagger2 Docket Bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.paths(PathSelectors.ant("/test/**"))
.apis(RequestHandlerSelectors.basePackage("com.bsx.springboot07swagger.controller")).build();
}
//配置Swagger信息
@Bean
public ApiInfo apiInfo() {
//作者信息
Contact concat = new Contact("bsx", "http://ceskykrumlov.gitee.io", "11@qq.com");
List<VendorExtension> vendorExtensions = new ArrayList<>();
return new ApiInfo("Api Title",
"description: this is my document",
"1.0",
"http://ceskykrumlov.gitee.io/book",
concat,
"license",
"licenseUrl",
vendorExtensions
);
}
}

配置是否启动Swagger

.enable(false)
//配置Swagger2 Docket Bean实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//关闭swagger
.enable(false)
.select()
//.paths(PathSelectors.ant("/test/**"))
.apis(RequestHandlerSelectors.basePackage("com.bsx.springboot07swagger.controller")).build();
}

题:

只希望在生产环境使用Swagger,在发布版本不使用

  • 判断是不是生产环境
  • 注入enable
  1. 获取项目环境,判断是否处在自己设定的某种环境
  2. enable中设置判断得到的boolean值
//配置Swagger2 Docket Bean实例
@Bean
public Docket docket(Environment environment) {
//获取当前环境
Profiles profiles = Profiles.of("dev","test");
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//关闭swagger
.enable(flag)
.select()
//.paths(PathSelectors.ant("/test/**"))
.apis(RequestHandlerSelectors.basePackage("com.bsx.springboot07swagger.controller")).build();
}