Spring Boot 2.7.18启动失败:documentationPluginsBootstrapper Bean异常
解决方案
你的问题确实是Springfox 2.8.0与Spring Boot 2.7.18版本不兼容导致的。Springfox 2.8.0发布于2018年,仅适配Spring Boot 2.0及更早版本,而Spring Boot 2.7.x对MVC请求处理逻辑做了调整,导致Springfox内部无法正确获取请求路径条件,触发空指针异常。
另外需要注意:Springfox项目已停止维护,官方不再更新,无法适配高版本Spring Boot和Java 21,推荐迁移到Springdoc OpenAPI(Springfox的官方替代方案),具体步骤如下:
1. 移除旧的Springfox依赖
从你的pom.xml中删除以下依赖:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version> <scope>compile</scope> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.8.0</version> <scope>compile</scope> </dependency>
2. 添加Springdoc OpenAPI依赖
在pom.xml中添加适配Spring Boot 2.7.x的Springdoc依赖(版本1.6.15支持Java 8~21,完美匹配你的环境):
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.6.15</version> </dependency>
3. 调整配置(如果有旧配置)
如果你之前有Springfox的配置类(比如标注@EnableSwagger2的类),直接删除即可。Springdoc默认自动配置,无需额外开启注解。
如果需要自定义API文档(比如设置标题、描述),可以创建如下配置类:
import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenApiConfig { @Bean public GroupedOpenApi publicApi() { return GroupedOpenApi.builder() .group("public-api") .pathsToMatch("/**") .build(); } }
4. 验证访问
启动应用后,访问以下路径查看Swagger UI:
- 新版路径:
http://localhost:8080/swagger-ui/index.html - 兼容旧路径:
http://localhost:8080/swagger-ui.html(会自动重定向到新版路径)
内容的提问来源于stack exchange,提问作者Mandroid
相关产品推荐
相关产品推荐

