1. swagger2.0
<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>
1.2 Swagger设置
@Configuration
// 关键
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestAPI() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 改为自己的controller包路径
.apis(RequestHandlerSelectors.basePackage("xx.xx.xx.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("WebNovel接口文档")
.description("WebNovel Restful 接口")
.contact(new Contact("xxUser", "#", "xxUser@.qq.com"))
.version("1.0")
.build();
}
}
1.3 拦截器排除
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
// 请求路径排除
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor()
.addPathPatterns("/**")
.excludePathPatterns("/swagger-resources/**")
.excludePathPatterns("/webjars/**")
.excludePathPatterns("/v2/**")
.excludePathPatterns("/swagger-ui.html/**");
super.addInterceptors(registry);
}
// 资源映射增加
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
}
2. swagger3.0
swagger3.0前端资源路径在springfox-swagger-ui-3.0.0.jar
包中。
具体路径:META-INF\resources\webjars\springfox-swagger-ui
2.1 POM依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
2.2 Swagger设置
@Configuration
// 关键
@EnableOpenApi
public class SwaggerConfig {
@Bean
public Docket createRestAPI() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("xx.xx.xx.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("WebNovel接口文档")
.description("WebNovel Restful 接口")
.contact(new Contact("xxUser", "#", "xxUser@qq.com"))
.version("1.0")
.build();
}
}
2.3 拦截器排除
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
super.addResourceHandlers(registry);
}
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor()
.addPathPatterns("/**")
.excludePathPatterns("/swagger**/**")
.excludePathPatterns("/webjars/**")
.excludePathPatterns("/v3/**")
.excludePathPatterns("/doc.html");
super.addInterceptors(registry);
}
}
3. Ant Path匹配规则
说明
例子