升级至OpenAPI编译失败:GroupedOpenApi.builder符号找不到
解决Java 21升级后SpringDoc编译错误:找不到GroupedOpenApi.builder类
问题原因
- API变更:新版springdoc-openapi中,
GroupedOpenApi的构造方式已从实例builder()改为静态工厂方法,旧代码里的new GroupedOpenApi.builder()写法不再有效。 - 代码遗漏:你的
api()方法没有返回创建好的GroupedOpenApi对象,这也会导致编译问题。 - 版本兼容:Java 21需要搭配Spring Boot 3.2及以上版本,需确保springdoc与Spring Boot版本匹配。
修复步骤
1. 修正SwaggerConfig代码
把实例化GroupedOpenApi的代码改成静态方法调用,并补上return语句:
import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SwaggerConfig { @Bean public GroupedOpenApi api() { // 去掉new,直接调用静态builder方法 return GroupedOpenApi.builder() .pathsToMatch("/path/**") .build(); } }
2. 确保Spring Boot与springdoc版本兼容
Java 21要求Spring Boot版本至少为3.2.x,建议在pom.xml中添加Spring Boot父依赖来统一管理版本:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.5</version> <!-- 适配Java 21的稳定版本 --> <relativePath/> </parent>
2.6.0版本的springdoc-openapi-starter-webmvc-ui已适配Spring Boot 3.x,无需改动现有springdoc依赖;若后续仍有兼容问题,可升级至2.7.0等匹配版本。
3. 验证修复
执行mvn clean compile重新编译项目,错误即可消除。
内容的提问来源于stack exchange,提问作者WendyG
相关产品推荐
相关产品推荐

