노드들과 연관관계를 표현하는데 있어서 풍부한 기능들을 제공하는 그래프 데이터베이스이다.
새로운 프로젝트를 만들어주고 아래의 의존성을 추가해준다.
버전마다 하위호환성은 좋지않다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>
docker로 neo4j를 설치하고 실행한다.
docker run -p 7474:7474 -p 7687:7687 -d --name neo4j_boot neo4j
포트 번호는 브라우저에서 사용하는 것(7474번)과 bolt 포트(7687번) 둘 다 정해줘야 된다.
http://localhost:7474/browser
로 접속하면 브라우저 클라이언트 환경을 제공해준다.
기본 아이디 / 패스워드는 둘 다 neo4j
이다.
처음 로그인하면 비밀번호를 변경할 수 있는데, 비밀번호 변경 후, 프로퍼티도 수정해줘야한다.
Neo4j Runner를 만들어 neo4j를 사용해보겠다.
Neo4j를 사용하는 두 가지 방법이 있다.
Neo4j를 사용하면, SessionFactory라는 Bean을 주입받아 사용할 수 있다.
SessionFactory에서 session을 가져와서 데이터를 다룰 수 있다.
실제로 Account를 만들어 데이터를 다뤄보겠다.
Account클래스를 만들어 @NodeEntity 애노테이션을 붙여준다.
그 후, 아까 만들어준 Runner에 Account를 통해 session에 객체를 넣어준다.
애플리케이션 실행 후, 브라우저에서 account가 생긴 것을 볼 수 있다.
Role이라는 객체를 하나 더 만들어서, 관계를 살펴보려고 한다.
그리고 아까 만들어 준 Account에 Role타입의 set을 추가해준다.
Runner에서 Role을 추가해주고 Account에 연결해준다.
그럼 관계가 생기고 연결되어 있는 모습을 볼 수 있다.
AccountRepository를 만들어 Neo4jRepository를 extends한다. Neo4jRepository의 값으로는 이용할 객체와, id의 타입을 준다.
그 후, Runner에서 AccountRepository를 주입받아 데이터를 다룬다.
그리고 애플리케이션을 실행시켜보면, 노드가 제대로 생겼음을 볼 수 있다.