02.25 SpringBoot中文參考指南(2.1.6)32.3、Neo4j

SpringBoot中文參考指南(2.1.6)32.3、Neo4j

<code>英文原文:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-nosql.html/<code>
<code>GitHub:https://github.com/jijicai/Spring/tree/master/spring-boot/<code>

32.3、Neo4j

Neo4j 是一個開源的 NoSQL 圖形數據庫,它使用了一個由一級關係連接的節點的豐富數據類型,比傳統的 RDBMS 方法更適合連接大數據。Spring Boot 為使用 Neo4j 提供了一些便利,包括:spring-boot-starter-data-neo4j “Starter”。

32.3.1、連接到 Neo4j 數據庫

要訪問 Neo4j 服務器,可以插入自動配置的 org.Neo4j.ogm.session.Session。默認情況下,該實例嘗試使用 Bolt 協議連接到 localhost:7687 上的 Neo4j 服務器。下面的示例展示如何注入 Neo4j Session:


SpringBoot中文參考指南(2.1.6)32.3、Neo4j

<code>@Componentpublic class MyBean {    private final Session session;    @Autowired    public MyBean(Session session) {        this.session = session;    }    // ...}/<code>

你可以通過設置 spring.data.neo4j.* 屬性來配置要使用的 uri 和憑據,如下面示例所示:

SpringBoot中文參考指南(2.1.6)32.3、Neo4j

<code>spring.data.neo4j.uri=bolt://my-server:7687spring.data.neo4j.username=neo4jspring.data.neo4j.password=secret/<code>

通過添加 org.neo4j.ogm.config.Configuration @Bean,你可以完全控制會話的創建。另外,添加 SessionFactory 類型的 @Bean 將禁用自動配置並提供完全控制。

32.3.2、使用嵌入式模式

如果將 org.neo4j:neo4j-ogm-embedded-driver 添加到應用程序的依賴項中,Spring Boot 會自動配置一個進程內的 Neo4j 嵌入式實例,該實例在應用程序關閉時不會保留任何數據。

註釋:由於嵌入式 Neo4j OGM 驅動程序本身不提供 Neo4j 內核,因此必須聲明 org.neo4j:neo4j 為依賴項。有關兼容版本的列表,請參閱 Neo4j OGM 文檔。(https://neo4j.com/docs/ogm-manual/current/reference/#reference:getting-started )

當類路徑上有多個驅動程序時,嵌入式驅動程序優先於其他驅動程序。可以通過設置spring.data.neo4j.embedded.enabled=false 顯式禁用嵌入模式。

如果嵌入式驅動程序和 Neo4j 內核位於上述類路徑上,則 Data Neo4j Tests 自動使用嵌入式 Neo4j 實例。

註釋:通過在配置中提供數據庫文件的路徑(例如:spring.data.neo4j.uri=file://var/tmp/graph.db),可以為嵌入式模式啟用持久性。

32.3.3、Neo4jSession

默認情況下,如果你運行的是 web 應用程序,則會話將綁定到整個請求處理的線程(即,它使用“在視圖中打開會話”模式)。如果不需要此行為,請將以下行添加到 application.properties 文件中:

<code>spring.data.neo4j.open-in-view=false/<code>

32.3.4、Spring Data Neo4j 存儲庫

Spring Data 包括對 Neo4j 的存儲庫支持。

與許多其他 Spring Data 模塊一樣,Spring Data Neo4j 與 Spring Data JPA 共享公共基礎設施。你可以使用前面的 JPA 示例,並將 City 定義為 Neo4j OGM @NodeEntity 而不是 JPA @Entity,並且存儲庫抽象也以相同的方法工作,如下面示例所示:

SpringBoot中文參考指南(2.1.6)32.3、Neo4j

<code>package com.example.myapp.domain;import java.util.Optional;import org.springframework.data.neo4j.repository.*;public interface CityRepository extends Neo4jRepository<city> {    Optional<city> findOneByNameAndState(String name, String state);}/<city>/<city>/<code>

spring-boot-starter-data-neo4j “Starter” 支持存儲庫和事務管理。通過在 @Configuration bean 上分別使用 @EnableNeo4jRepositories 和 @EntityScan,可以自定義查找存儲庫和實體的位置。

提示:有關 Spring Data Neo4j 的完整細節,包括其對象映射技術,請參閱參考文檔。(https://projects.spring.io/spring-data-neo4j/ )

32.4、Gemfire

Spring Data Gemfire 為訪問 Pivotal Gemfire 數據管理平臺提供了方便的 Spring 友好工具。有一個 spring-boot-starter-data-gemfire “Starter”,用於以方便的方式收集依賴項。目前還沒有對 Gemfire 的自動配置支持,但是你可以使用單個註解 @EnableGemfireRepositories 來啟用 Spring Data Repositories。(https://github.com/spring-projects/spring-data-gemfire/blob/master/src/main/java/org/springframework/data/gemfire/repository/config/EnableGemfireRepositories.java )

32.5、Solr

Apache Solr 是一個搜索引擎。Spring Boot 為 Solr 5 客戶端庫提供了基本的自動配置,以及 Spring Data Solr 提供的其之上的抽象。有一個 spring-boot-starter-data-solr “Starter”,用於以方便的方式收集依賴項。

32.5.1、連接到 Solr

你可以像注入任何其他 Spring bean 一樣注入一個自動配置的 SolrClient 實例。默認情況下,該實例嘗試連接到 localhost:8983/solr 上的服務器。下面的示例展示瞭如何注入 Solr bean:

SpringBoot中文參考指南(2.1.6)32.3、Neo4j

<code>@Componentpublic class MyBean {    private SolrClient solr;    @Autowired    public MyBean(SolrClient solr) {        this.solr = solr;    }    // ...}/<code>

如果你添加自己的 SolrClient 類型的 @Bean,它將替換默認值。

32.5.2、Spring Data Solr 存儲庫

Spring Data 包括對 Apache Solr 的存儲庫支持。與前面討論的 JPA 存儲庫一樣,基本原則是根據方法名為你自動構造查詢。

事實上,Spring Data JPA 和 Spring Data Solr 共享相同的公共基礎設施。你可以從前面的 JPA 示例開始,假設 City 現在是一個 @SolrDocument 類,而不是一個 JPA @Entity,那麼它的工作方式是相同的。

提示:有關 Spring Data Solr 的完整詳細信息,請參閱參考文檔。(https://projects.spring.io/spring-data-solr/ )


分享到:


相關文章: