5

有关如何在 Java 应用程序中嵌入 Neo4j的教程建议注册一个关闭挂钩,如下所示:

Runtime.getRuntime().addShutdownHook( new Thread() {
    // do shutdown work here
});

我想知道放置此代码的最佳位置 - 或者实际上是在 Spring 启动时需要运行一次的任何代码。是否只是使用 init 方法注册 bean并将代码放入其中的情况?

我很想知道这一点,更具体地说,其他人在他们的 Spring 应用程序中使用嵌入式 Neo4j 时如何注册关闭挂钩。

4

2 回答 2

8

只需使用正确的声明您的 bean 为 graphdatabase-service destroy-method

<bean id="graphDatabaseService" class="org.neo4j.kernel.EmbeddedGraphDatabase"
        destroy-method="shutdown">
    <constructor-arg index="0" value="data/testdb.db"/>
    <constructor-arg index="1">
        <map>
            <entry key="allow_store_upgrade" value="true"/>
        </map>
    </constructor-arg>
</bean>
于 2013-01-16T08:23:04.520 回答
-3

使用 1.8.1 Neo4j 和 SDN 2.1 - 以上不适用于我的 Eclipse/Jetty 环境。

几乎每次我使用 Eclipse“服务器”控件启动/停止时,我都会在启动时看到:

信息:在日志中检测到非干净关闭...

注意:虽然我没有设置“allow-store-upgrade”属性。我认为这与干净关机无关?

于 2013-04-16T22:25:06.263 回答