关于Spring Boot整合Neo4j的介绍很多,但自己上手参考的时候,仍然有些东西云里雾里有点晕。慢慢才摸出正道。
聊记,分享。
一、各组件直接的搭档配合和版本密切相关。版本不合适,配合不上。
我是用的版本搭档是:
Noe4j 3.5.8
spring data Noe4j 5.1.3.RELEASE (主要包括OGM SUpport、 Spring Data Repository Support)
利用maven进行jar包管理
neo4j jar包引入这块容易晕,和neo4j相关的包很多,例如:
spring-boot-starter-data-neo4j
neo4j
spring-data-neo4j
neo4j-ogm-api
neo4j-ogm-bolt-driver
…………
每个是干什么的?引哪个,不引哪个?如何引?这是个技术活。需要根据各子项目的需要,搞清楚各个jar包的用途,在合适的位置引入。
我们项目既没有直接引入neo4j包,更不是引入spring starter相关的neo4j组件,例如:
<!--neo4j-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-data-neo4j</artifactId>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/org.neo4j/neo4j -->
<!-- <dependency>-->
<!-- <groupId>org.neo4j</groupId>-->
<!-- <artifactId>neo4j</artifactId>-->
<!-- <version>${neo4j.version}</version>-->
<!-- </dependency>-->
而是在base模块引入neo4j-ogm-api组件,例:
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-api</artifactId>
<version>2.1.6</version>
</dependency>
像JPA使用了ORM一样,Neo4j使用了对象-图形映射(Object-Graph Mapping,OGM)的方式来建模。
service模块引入:
<!--neo4j-->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-bolt-driver</artifactId>
<version>2.1.6</version>
</dependency>
Neo4j总共有三种连接方式。常用的有两种,一种是http的连接方式【端口:7474】,一种是Bolt的连接方式【端口:7687】
dao模块引入: