pom.xml
<!-- swagger ui -->
<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>
SwaggerConfig.java
package com.example.helloworld.config;
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;
/**
* @ClassName SwaggerConfig
* @Description TODO
* @Author huocarry
* @Date 2022/12/29 11:24
* @Version 1.0
**/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/**
* 创建API应用
* apiInfo() 增加API相关信息
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
* 本例采用指定扫描的包路径来定义指定要建立API的目录。
*
* @return
*/
@Bean
public Docket restApi(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("标准接口")
.apiInfo(apiInfo("hcy的swagger测试接口", "1.0"))
.useDefaultResponseMessages(true)
.forCodeGeneration(false)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.helloworld.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
* 访问地址:http://ip:port/swagger-ui.html
*
* @return
*/
private ApiInfo apiInfo(String title, String version) {
return new ApiInfoBuilder()
.title(title)
.description("swagger测试接口-study")
.termsOfServiceUrl("https://blog.csdn.net/xqnode")
.contact(new Contact("hcy", "https://mp.csdn.net/mp_blog/creation/editor?spm=1001.2014.3001.5352", "1143187786@qq.com"))
.version(version)
.build();
}
}
报错提示:
Failed to start bean 'documentationPluginsBootstrapper';
报错原因:
由于Spring Boot 2.6.x 请求路径与 Spring MVC 处理映射匹配的默认策略从AntPathMatcher
更改为PathPatternParser
。所以需要设置spring.mvc.pathmatch.matching-strategy为ant-path-matcher
来改变它。
解决方法:
方案一(推荐):
修改SpringMVC路径匹配规则,在配置文件application.properties
文件中添加以下代码
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
若配置文件为application.yml
,则添加以下代码
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
方案二:
将pom.xml依赖中的Spring Boot 版本号修改到2.6.0以下
Spring项目:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/>
</parent>
- SpringBoot Swaggerspringboot swagger springboot2 springboot swagger3 swagger springboot swagger3 swagger springboot swagger2 swagger springboot swagger2 swagger问题 springboot knife4j swagger knife4 springboot接口swagger文档 mybatisplus springboot swagger mysql springboot3 springboot swagger springboot swagger 12