Spring Boot集成Swagger启动报documentationPluginsBootstrapper错误如何解决?
问题根因
- Spring Boot版本与Springfox版本不兼容:你使用的Spring Boot 2.6.x版本默认将路径匹配策略修改为
PathPatternParser,但Springfox 3.0.0仍依赖旧的AntPathMatcher,导致初始化空指针。 - Swagger扫描包配置错误:你配置类中Docket设置的扫描包路径是
com.co.dejsoftware.red.ws,但实际控制器所在包为com.red.api.ws,路径不匹配。 - 多余依赖冲突:已经引入
springfox-boot-starter的前提下,不需要额外单独引入springfox-swagger-ui依赖,重复引入可能导致类加载冲突。
修复步骤
步骤1:修改Spring MVC路径匹配策略
在你的application.properties配置文件中添加如下配置:
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
步骤2:修正Swagger扫描包路径
修改配置类Configuracion中的Docket Bean配置,将扫描包改为实际控制器所在路径:
@Bean public Docket redApi() { return new Docket(DocumentationType.SWAGGER_2).select() // 替换为实际控制器包路径 .apis(RequestHandlerSelectors.basePackage("com.red.api.ws")) .paths(PathSelectors.any()).build(); }
步骤3:删除多余的Swagger UI依赖
在pom.xml中删除以下单独引入的springfox-swagger-ui依赖:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>3.0.0</version> <scope>compile</scope> </dependency>
可选优化建议
Springfox已经停止维护,长期使用建议替换为更新更稳定的SpringDoc OpenAPI,兼容Spring Boot所有高版本,无需额外适配路径匹配策略。
内容的提问来源于stack exchange,提问作者davids182009
相关产品推荐
相关产品推荐

