Spring Boot 和 Spring Data Neo4j 的版本不兼容。根据你提供的版本信息,Spring Boot 2.3.7.RELEASE 和 Spring Cloud Hoxton.SR9 是较旧的版本,而 Spring Data Neo4j 在这类版本中可能不会自动配置 Neo4jClient
所以加入以下配置类
其实就是缺少哪个bean,配置进去就行了
package com.dreams.logistics.config;
import org.neo4j.driver.Driver;
import org.neo4j.driver.GraphDatabase;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.neo4j.core.Neo4jClient;
import org.neo4j.driver.AuthTokens;
import org.springframework.data.neo4j.core.Neo4jTemplate;
import org.springframework.data.neo4j.core.mapping.Neo4jMappingContext;
@Configuration
public class Neo4jConfig {
@Value("${spring.data.neo4j.uri}")
private String uri;
@Value("${spring.data.neo4j.username}")
private String username;
@Value("${spring.data.neo4j.password}")
private String password;
@Bean
public Driver driver() {
// 使用 @Value 注解加载的配置来初始化 Driver
return GraphDatabase.driver(uri, AuthTokens.basic(username, password));
}
@Bean
public Neo4jClient neo4jClient(Driver driver) {
return Neo4jClient.create(driver);
}
@Bean
public Neo4jTemplate neo4jTemplate(Neo4jClient neo4jClient) {
return new Neo4jTemplate(neo4jClient); // 传递 Neo4jClient 而不是 Driver
}
@Bean
public Neo4jMappingContext neo4jMappingContext() {
return new Neo4jMappingContext(); // 定义 Neo4jMappingContext Bean
}
}启动类加入:
@EnableNeo4jRepositories(basePackages = "com.dreams.logistics")
依赖:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>6.0.0</version> <!-- 根据需要使用合适的版本 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>


