报错
Failed to start bean ‘documentationPluginsBootstrapper
导入依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<!--使用Swagger2-->
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.9</version>
</dependency>
配置类
package com.bo.partner.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.EnableSwagger2WebMvc;
/**
* @author: bo
* @date: 2022/9/3
* @description: 自定义 Swagger 接口文档的配置
*/
@Configuration
@EnableSwagger2WebMvc
public class SwaggerConfig {
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.bo.partner.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("少年有事问春风")
.description("个人博客")
.termsOfServiceUrl("https://www.jinxs.icu/")
.contact(new Contact("wfdhwave", "https://www.jinxs.icu", "123@qq.com"))
.version("1.0")
.build();
}
}
原因:
Springboot2.6以后将SpringMVC 默认路径匹配策略从AntPathMatcher 更改为PathPatternParser,导致出错
解决方法
降低Springboot版本
为了整合knife4j降低Springboot版本不太合适吧
在配置文件yaml中加入这行代码即可解决
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
完整yaml代码
spring:
application:
name: partner_matching_backend
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3307/universal
username: root
password: 123456
session:
timeout: 86400
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
server:
port: 8080
servlet:
context-path: /api
pring:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: false
global-config:
db-config:
logic-delete-field: isDelete # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
是属于springboot 下的配置
Q.E.D.