springboot 整合 neo4j
1、引入包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>
2、配置文件
data:
neo4j:
uri: bolt://10.42.0.143:7687
username: neo4j
password: neo4j
3、创建配置类
package com.cetc.topoana.dao.configuration;
import org.neo4j.ogm.config.Configuration;
import org.neo4j.ogm.session.SessionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.data.neo4j.transaction.Neo4jTransactionManager;
import org.springframework.stereotype.Component;
@Component
public class Neo4jConfiguration {
@Value("${spring.data.neo4j.uri}")
String uri;
@Value("${spring.data.neo4j.username}")
String user;
@Value("${spring.data.neo4j.password}")
String password;
@Bean
public Configuration getConfiguration(){
Configuration configuration = new Configuration.Builder()
.uri(uri)
.connectionPoolSize(100)
.credentials(user, password)
.withBasePackages("com.distribute.order.repository")
.build();
return configuration;
}
@Bean
public SessionFactory sessionFactory(){
return new SessionFactory(getConfiguration());
}
@Bean("neo4jTransaction")
public Neo4jTransactionManager neo4jTransactionManager(SessionFactory sessionFactory){
return new Neo4jTransactionManager(sessionFactory);
}
}
4、DAO层实现
package com.cetc.topoana.dao;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface AreaInformationDao extends Neo4jRepository {
@Query("Match (n:Country{iso: {log}})return n")
List<Map<String,Object>> findAreaByLog(@Param("log") String log);
}
注意: 给@Query主机传参时不要添加引号如 ‘log}’,否则会传参失败