2013-01-16 39 views
5

how to embed Neo4j in a java application पर एक ट्यूटोरियल इसलिए की तरह एक बंद हुक दर्ज की सिफारिश:स्प्रिंग 3 में शटडाउन हुक पंजीकृत करने का सही तरीका क्या है?

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

मैं कहाँ सबसे अच्छी जगह इस कोड डाल करने के लिए सोच रहा हूँ - या वास्तव में किसी भी कोड एक बार जब वसंत शुरू होता है चलाने के लिए जरूरत है। क्या यह बस registering a bean with an init method का मामला है और उसमें कोड डाल रहा है?

मुझे यह जानने में दिलचस्पी होगी कि अन्य लोगों ने अपने स्प्रिंग एप्लिकेशन में एम्बेडेड नियो 4j का उपयोग करते समय शटडाउन हुक कैसे पंजीकृत किया है।

उत्तर

8

बस सही destroy-method साथ graphdatabase-सेवा के लिए अपने सेम की घोषणा:

<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> 
+0

क्या आपके पास एनोटेशन कॉन्फ़िगरेशन समकक्ष है? – chrisjleu

+0

@ बीन सार्वजनिक ग्राफडेटाबेस सेवा ग्राफडाबेस सेवा() {नया एम्बेडेडग्राफडेटाबेस (storeDir, config) लौटाएं; } –

+1

@ बीन (destroyMethod = "शटडाउन") सार्वजनिक ग्राफडेटाबेस सेवा ग्राफ़डेटाबेस सेवा() {नया एम्बेडेडग्राफडेटाबेस (storeDir, config) लौटाएं; } – zebeurton

-3

1.8.1 Neo4j, और एसडीएन 2.1 का उपयोग करना - ऊपर मेरी ग्रहण/जेट्टी पर्यावरण के लिए काम नहीं करता।

जानकारी:

लगभग हर बार जब मैं शुरू/रोक ग्रहण "सर्वर" नियंत्रण के साथ, मैं इस स्टार्टअप पर देखने के गैर स्वच्छ बंद लॉग पर पता चला ...

नोट: मैं निर्धारित नहीं करते हालांकि "अनुमति-स्टोर-अपग्रेड" संपत्ति। मैंने सोचा कि साफ शटडाउन से कोई लेना देना नहीं था?