1) 下載neo4j :https://neo4j.com/download/?ref=home 開發請下載社區版,生產部署下載企業版。html
2) 安裝java
a) Windows系統安裝git
i. 與通常軟件安裝方式同樣,在啓動時,須要選擇數據庫的目錄,請根據自身須要選擇github
ii. 啓動完成後,打開瀏覽器訪問web控制檯:http://localhost:7474web
默認用戶名和密碼均爲:neo4jspring
b) Linux系統安裝數據庫
i. 下載tar壓縮包,解壓到安裝目錄瀏覽器
ii. 執行命令$NEO4J_HOME/bin/neo4j console單元測試
iii. 打開瀏覽器訪問web控制檯:http://localhost:7474測試
iv. 默認用戶名和密碼均爲:neo4j
1) 新建spring項目,pom.xml文件中加入所需依賴
2) 新建Neo4jConfig.java配置類
用於配置neo4j的SessionFactory,事物管理器,數據庫鏈接相關
Neo4j.properties文件內容:
neo4j.ogm.driver = org.neo4j.ogm.drivers.http.driver.HttpDriver
neo4j.ogm.URI = http://neo4j_dev:qaz123@localhost:7474
Neo4j支持多種協議調用,此處咱們使用http 協議
注:因爲spring-data-neo4j版本更迭較快,每一個版本的配置會略有不一樣,具體配置方法請參考spring-data 官方github主頁,本示例使用的是spring的最新版本:
https://github.com/spring-projects/spring-data-neo4j/tree/master
業務背景:
一個用戶屬於一家公司,一個用戶可擁有多個設備,多個用戶可同時屬於一家公司,下面的示例是咱們在spring data +neo4j環境及下開發出這樣的一個業務關係模型。
1) 建立實體文件
每一個實體必須有主鍵id,爲Long類型,必須加上@GraphId註解用於標識Node節點的Id
關係結構使用@Relationship註解,type自定義,用於標識是何種關係類型,direction用於定義本節點在這個關係中是處於哪一方,默認是OUTGOING
在此業務場景下,咱們須要創建三個角色型的實體(用戶,公司,設備),三個關係型實體(用戶到公司,公司到用戶,用戶到設備)
實體中所用到的註解說明:
@NodeEntity : 節點實體註解
@GraphId:實體ID 字段
@Index:添加索引的字段
@Relationship(type= 「XXX」) :關係註解,type自定義,需跟關係實體中的type一致
a) User實體文件
b) Company實體
c) Device實體
d) 關係類型實體
關係型實體註解說明
@RelationshipEntity(type = 「XXX」) :標識位關係實體
@StartNode :關係的開始節點
@EndNode :關係的結束節點
User2Company
User2Device
Compayn2User
2) 新建repository接口,功能相似於dao文件,用於和neo4j數據庫進行交互
可直接繼承Neo4jRepository<T>或PagingAndSortingRepository<T,Long>,前者是無分頁的操做接口,後者是能夠進行分頁和排序操做的接口,用戶也可在本身的接口中自定義擴展
例如:
3) 建立Service組件
根據分層結構設計原則,咱們還須要一個service層,用於封裝業務操做邏輯
這裏是列出User的Service實現,其餘Service基本相同。
實現類
4) 編寫單元測試
至此,咱們已經建立一個簡單的公司與用戶,用戶與設備之間的關係的圖譜,在瀏覽器UI界面能夠看到咱們建立的關係圖譜結果
上面的自定義查詢中使用到了Neo4J專用的查詢語言,稱之爲CQL,其語法相似於Sql語言。
如需瞭解更多,請移步:http://www.w3cschool.cn/neo4j/neo4j_cql_introduction.html