无法识别spring.data.solr.host配置属性及依赖版本问题求助
问题分析与解决方案
核心问题
你的依赖存在严重版本不兼容问题:
- 用了Spring Boot 3.1.2的
spring-boot-starter-web,却搭配了Spring Boot 2.4.13版本的spring-boot-starter-data-solr,两个大版本的Spring Boot生态无法兼容。 - 手动额外声明
spring-data-commons和spring-data-solr,破坏了Spring Boot依赖管理的版本一致性,直接导致EntityInstantiators类找不到这类NoClassDefFoundError。 - 旧版本的Solr Starter无法适配Spring Boot 3.x的配置体系,因此连接属性不被识别。
解决步骤
清理冲突依赖
移除单独声明的spring-data-commons和spring-data-solr,spring-boot-starter-data-solr已经包含这些组件,且版本会由Spring Boot统一管控。统一Spring Boot版本
使用与spring-boot-starter-web同版本的spring-boot-starter-data-solr(3.1.2),确保整个Spring Boot生态版本一致。
正确的依赖配置如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.1.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-solr</artifactId> <version>3.1.2</version> </dependency>
- 修正Solr配置属性
在application.properties中使用Spring Boot 3.x兼容的标准配置:
# Solr服务器地址 spring.data.solr.host=http://localhost:8983/solr # 可选:指定默认使用的Solr核心 spring.data.solr.core=your-core-name
原理说明
Spring Boot的starter依赖会自动管理所有关联组件的版本(如Spring Data Solr、Spring Data Commons等),手动指定这些组件的版本会打破版本一致性,引发类加载异常和配置失效。统一使用同版本的Spring Boot starter即可解决所有版本不兼容问题。
内容的提问来源于stack exchange,提问作者user19640780
相关产品推荐
相关产品推荐

