JHipster 7.9.3是否支持Java17、Spring Boot3及Spring Framework6?升级报错求助
问题分析与解决方案
这个错误是因为JHipster 7.9.3 自带的 SpringDoc 配置类与 Spring Boot 3 不兼容导致的:
- JHipster 7.9.3 针对 Spring Boot 2.7 开发,依赖的是 SpringDoc v1.x 版本;
- Spring Boot 3 要求使用 SpringDoc v2.x 版本,而该版本中
org.springdoc.core.SpringDocConfigProperties类已被移除或重构,导致 JHipster 自带的JHipsterSpringDocGroupsConfiguration无法找到依赖的 Bean。
解决步骤
1. 升级 SpringDoc 依赖到适配 Spring Boot 3 的版本
如果使用 Maven,修改 pom.xml,替换旧的 SpringDoc 依赖为 Spring Boot 3 兼容的 starter:
<!-- 移除旧的 SpringDoc 依赖(比如 springdoc-openapi-ui) --> <!-- 添加适配 Spring Boot 3 的 starter --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.2.0</version> </dependency>
如果使用 Gradle,修改 build.gradle:
// 移除旧依赖 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
2. 替换 JHipster 自带的 SpringDoc 配置
由于 JHipster 7.9.3 的 JHipsterSpringDocGroupsConfiguration 依赖旧版 SpringDoc API,需要自定义 GroupedOpenAPI Bean 替代它:
创建一个新的配置类(或修改现有配置):
import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class CustomOpenAPIConfiguration { @Bean public GroupedOpenApi openAPIDefaultGroupedOpenAPI() { return GroupedOpenApi.builder() .group("default") .pathsToMatch("/api/**") .build(); } }
同时,确保移除或禁用 JHipster 自带的 JHipsterSpringDocGroupsConfiguration(可以通过 @ComponentScan 排除该类,或者在配置文件中禁用相关自动配置)。
3. 可选:升级 JHipster 到 8.x 版本
JHipster 8.x 官方适配了 Spring Boot 3 和 Java 17,升级后可以直接使用官方提供的配置,无需手动调整依赖和配置类。
内容的提问来源于stack exchange,提问作者ppoornima
相关产品推荐
相关产品推荐

