<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API文档")
.description("用于描述API接口信息")
.version("1.0")
.contact(new Contact("联系人", "联系人网址", "联系人邮箱"))
.build();
}
}
然后报错:org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
改一下依赖:
<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>
继续报错:Cannot set parent bean factory to self
解决方案一 | 降低 pom 文件中 parent 的版本
原因:由于 Springboot 版本过高,与 Swagger 不兼容,所以降低 Springboot 版本
方案:在 application.properties 文件中,将 parent 中的 version 修改为 2.5.9
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.9</version>
<!-- <version>2.6.2</version>-->
<relativePath/>
</parent>
解决方案二 | 仅修改配置文件
在 application.properties 配置文件中,加入下面一行代码
spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER
或则在yml中:
spring:
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
修改结束后,启动项目访问:localhost:8081/swagger-ui.html 即可访问