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
值
- 获取项目环境,判断是否处在自己设定的某种环境
- 在
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();
}