升级Spring Boot 3时缺失LinkRelationProvider Bean问题求助
问题原因
Spring Boot 3升级后,springdoc-openapi与Spring HATEOAS的版本适配出现冲突:
- Spring Boot 3对应
Spring HATEOAS 2.0+版本,而适配Spring Boot 2.x的旧版springdoc-openapi(v1.x)在Spring Boot 3环境下,无法正确触发LinkRelationProviderBean的自动注册逻辑。 - 若你的
pom.xml中仍使用v1.x的springdoc-openapi-starter-webmvc-ui,就会出现该Bean找不到的启动错误。
解决方案
1. 升级springdoc-openapi到适配Spring Boot 3的版本
将springdoc-openapi-starter-webmvc-ui替换为v2.x版本(完全适配Spring Boot 3和Jakarta EE),示例依赖配置:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.0.2</version> </dependency>
该版本会自动处理Spring HATEOAS的Bean依赖,无需额外配置即可解决启动报错。
2. 检查Spring HATEOAS自动配置是否被禁用
确认你的启动类没有排除SpringHateoasAutoConfiguration,如果存在类似@SpringBootApplication(exclude = SpringHateoasAutoConfiguration.class)的配置,需要移除排除项,让Spring自动完成LinkRelationProvider的Bean注册。
3. 手动注册Bean(兜底方案)
若上述方案无效,可在自定义配置类中手动注册LinkRelationProvider:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.hateoas.server.DefaultLinkRelationProvider; import org.springframework.hateoas.server.LinkRelationProvider; @Configuration public class HateoasConfig { @Bean public LinkRelationProvider linkRelationProvider() { return new DefaultLinkRelationProvider(); } }
内容的提问来源于stack exchange,提问作者Bruce_Wayne
相关产品推荐
相关产品推荐

