5

Neo4j を Java アプリケーションに埋め込む方法に関するチュートリアルでは、次のようにシャットダウン フックを登録することを推奨しています。

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

このコードを配置するのに最適な場所、または実際には、Spring の起動時に一度実行する必要があるコードをどこに配置するのが最適なのか疑問に思っています。init メソッドで Bean を登録し、その中にコードを入れるだけの場合ですか?

これについて、さらに具体的には、Spring アプリケーションで組み込みの Neo4j を使用しているときに他の人がシャットダウン フックを登録した方法を知りたいと思います。

4

2 に答える 2

8

正しい を使用して、graphdatabase-service の Bean を宣言するだけです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 に答える