2015-06-22 4 views
4

У кого-нибудь есть данные Spring Neo4j (3.3.0), работающие с Grails v3 и желающие поделиться конфигурацией?Весенние данные Neo4j и Grails 3

Я хотел бы получить работу веб-интерфейс (как в здесь: How to enable neo4j webadmin when using spring-data-neo4j?), но я получаю немного потерял при попытке выяснить, что должен идти в Application.groovy, поскольку Grails расширяет его от GrailsAutoConfiguration и пример показано, что оно от Neo4jConfiguration.

+0

У меня возникли проблемы с приложением приложения образца Neo4j, работающим с Grails 3.0. Я открыл проблему в [Github] (https://github.com/sarmbruster/neo4jsample/issues) и не видел много разговоров по этому вопросу. Мне было бы интересно увидеть рабочую конфигурацию. – Nathan

+1

@ Натан, плагин Grails для Neo4J, созданный Стефаном, очень сильно сломан, и я не мог заставить его работать даже с 2.4.3. Тем не менее, теперь у меня есть Spring Data Neo4J (http://projects.spring.io/spring-data-neo4j/), работающий с Grails 3, подробности ниже. – John

ответ

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 отлично работает. Существует интерфейс администратора веб-сервера для Neo4J, доступный на порту 7474 при запуске grails run-app.

Смежные вопросы