版本北背景:
SpringBoot:2.6.4
Swagger:2.9.2
pom.xml:
<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>
No mapping for GET /swagger-ui.html问题:
一开始这个configuration是这样写的:
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig implements WebMvcConfigurer{
/*
swagger会帮助我们生成接口文档
1:配置生成的文档信息
2:配置生成规则
*/
@Bean
public Docket getDocket(){
ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
//指定封面信息
apiInfoBuilder.title("《xxxx》后端接口说明")
.description("此文档详细说明了xxxx后端接口规范。。。")
.version("v 2.0.1")
.contact( new Contact("小郭同学","www.xiaoguotongxue.com","12345678@qq.com"))
.build();
ApiInfo apiInfo = apiInfoBuilder.build();
//指定生成策略
Docket docket = new Docket(DocumentationType.SWAGGER_2)//指定文档路径
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.haoxing.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
运行后访问http://localhost:8080/swagger-ui.html#/
控制台信息:No mapping for GET /swagger-ui.html
解决方法:
再配置类下方加入
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(
"classpath:/static/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations(
"classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
WebMvcConfigurer.super.addResourceHandlers(registry);
}
最终配置类为
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig implements WebMvcConfigurer{
/*
swagger会帮助我们生成接口文档
1:配置生成的文档信息
2:配置生成规则
*/
@Bean
public Docket getDocket(){
ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
//指定封面信息
apiInfoBuilder.title("《浩兴商城》后端接口说明")
.description("此文档详细说明了浩兴商城后端接口规范。。。")
.version("v 2.0.1")
.contact( new Contact("小郭同学","www.xiaoguotongxue.com","740151486@qq.com"))
.build();
ApiInfo apiInfo = apiInfoBuilder.build();
//指定生成策略
Docket docket = new Docket(DocumentationType.SWAGGER_2)//指定文档路径
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.haoxing.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(
"classpath:/static/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations(
"classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
WebMvcConfigurer.super.addResourceHandlers(registry);
}
}
再次访问localhost:8080/swagger-ui.html
成功显示
PS:处女作,解决一下自己遇到的问题,可能不太全面,有问题希望指正。
如果真的帮到你了希望可以点个赞嘿嘿嘿。