【问题标题】:Spring Data Neo4j and Grails 3Spring Data Neo4j 和 Grails 3
【发布时间】:2015-06-22 15:03:43
【问题描述】:

是否有人拥有使用 Grails v3 的 Spring Data Neo4j (3.3.0) 并愿意分享配置?

我想让 Web 界面正常工作(根据这里:How to enable neo4j webadmin when using spring-data-neo4j?),但是当我试图弄清楚 Application.groovy 中的内容时,我有点迷失了,因为 Grails 从 @ 扩展了它987654325@ 和所示示例从Neo4jConfiguration 扩展而来。

【问题讨论】:

  • 我在让 Neo4j 示例应用程序与 Grails 3.0 一起运行时遇到了一些问题。我在Github 上打开了一个问题,并没有看到太多关于这个问题的对话。我很想看看一个有效的配置。
  • @Nathan,Stefan 为 Neo4J 创建的 Grails 插件严重损坏,我什至无法使用 2.4.3。但是,我现在已经让 Spring Data Neo4J (projects.spring.io/spring-data-neo4j) 与 Grails 3 一起使用,详情如下。

标签: grails neo4j spring-data-neo4j


【解决方案1】:

将以下依赖添加到build.gradle:

compile("org.springframework.data:spring-data-neo4j")
compile "org.neo4j.app:neo4j-server:2.1.5"
compile "org.neo4j.app:neo4j-server:2.1.5:static-web"

下面的资源文件进入conf/spring。

resources.xml:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:neo4j="http://www.springframework.org/schema/data/neo4j"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/data/neo4j http://www.springframework.org/schema/data/neo4j/spring-neo4j.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

    <context:spring-configured/>
    <context:annotation-config/>

    <util:map id="config">
        <entry key="remote_shell_enabled" value="true"/>
    </util:map>

    <neo4j:config storeDirectory="target/data/db" base-package="com.example"/>

    <neo4j:repositories base-package="com.example.repositories"/>

    <bean id="graphDbFactory" class="org.neo4j.graphdb.factory.GraphDatabaseFactory"/>

    <bean id="graphDbBuilder" factory-bean="graphDbFactory" factory-method="newEmbeddedDatabaseBuilder">
        <constructor-arg value="target/data/db"/>
    </bean>

    <bean id="graphDbBuilderFinal" factory-bean="graphDbBuilder" factory-method="setConfig">
        <constructor-arg ref="config"/>
    </bean>

    <bean id="graphDatabaseService" factory-bean="graphDbBuilderFinal" factory-method="newGraphDatabase"
    destroy-method="shutdown"/>

    <bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper" init-method="start"
        destroy-method="stop">
        <constructor-arg ref="graphDatabaseService"/>
    </bean>
</beans>

resources.groovy(我确信这可能会从resources.xml 中添加很多内容,但我不确定该怎么做):

import com.example.MyGraph;

// Place your Spring DSL code here
beans = {
    myGraph(MyGraph)

}

src/main/groovy/com/example/MyGraph.java:

package com.example;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.neo4j.config.Neo4jConfiguration;
import org.springframework.data.neo4j.core.GraphDatabase;

@Configuration
public class MyGraph extends Neo4jConfiguration {

    @Autowired
    GraphDatabase graphDatabase;

}

我将 Neo4J 的域类放在 src/main/groovy/com/example/domain 中,将存储库类放在 src/main/groovy/com/example/repositories 中。然后 Spring 示例代码可以正常工作。当您运行 grails run-app 时,端口 7474 上有一个用于 Neo4J 的 Web 服务器管理界面。

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多