2009-01-20 10 views
12

में स्वचालित कॉन्फ़िगरेशन पुनर्नवीनीकरण Log4j में, एक ऐसी सुविधा है जिसमें सिस्टम को कॉन्फ़िगर करने और अंतराल के साथ देखने के लिए प्रारंभ किया जा सकता है। जब भी संपत्ति फ़ाइल बदल जाती है तो यह log4j सिस्टम को इसके गुणों को फिर से लोड करने की अनुमति देता है। क्या वसंत ढांचे में ऐसी कॉन्फ़िगरेशन ऑब्जर्वर सुविधा होती है जिसमें कॉन्फ़िगरेशन को बदलते समय पुनः लोड किया जाता है। कॉन्फ़िगरेशन जिसे पुनः लोड करने की आवश्यकता है वह स्प्रिंग्स एप्लिकेशन कॉन्टेक्स्ट.एक्सएमएल नहीं है लेकिन स्प्रिंग प्रारंभिक बीन्स का उपयोग करके प्रारंभ की गई कई अन्य कॉन्फ़िगरेशन फ़ाइलें हैं। स्प्रिंग

उत्तर

7

मुझे एक उपयोगिता मिली जो लॉग 4 जे here के समान कुछ करता है। यह मूल रूप से PropertyPlaceholderConfigurer का एक विस्तार है जो बदलते समय गुणों को फिर से लोड करता है।

+1

पर यह देख सकते हैं https://github.com/Unicon/springframework-addons/wiki/Auto-reloading-properties-files – Vadzim

+0

@Vadzim लिंक मर चुका है! इससे हमें उपरोक्त मामले में मदद मिल सकती है http://projects.spring.io/spring-cloud/spring-cloud.html – pramodc84

+1

@ pramodc84, अपडेट किए गए लिंक: http://maven-repository.com/artifact/net.unicon.springframework /springframework-addons/0.1, https://github.com/UniconLabs/springframework-addons/blob/master/src/main/java/net/unicon/springframework/addons/properties/ReloadingPropertyPlaceholderConfigurer.java, https: // github .com/knightliao/disconf/blob/master/disconf-client/src/main/java/com/baidu/disconf/client/addons/Properties/ReloadingPropertyPlaceholderConfigurer.java – Vadzim

4

AFAIK वसंत ऐसी उपयोगिता प्रदान नहीं करता है। हालांकि एक तृतीय पक्ष उपकरण है, JRebel जो सर्वर को पुनरारंभ करने के बिना आपको एक संपूर्ण वेब एप्लिकेशन (स्प्रिंग कॉन्फ़िगरेशन समेत) को अपडेट करने में सक्षम बनाता है।

एक नि: शुल्क परीक्षण उपलब्ध है, और खरीद मूल्य काफी सस्ती है।

2

मैं वसंत आवेदन संदर्भ को पुनः लोड करने के साथ अतिरिक्त सतर्क रहूंगा।

सिंगलटन बीन्स के साथ आप क्या होने की उम्मीद करते हैं? यदि किसी ऑब्जेक्ट में सिंगलटन बीन का संदर्भ है, तो इसे अपडेट किया जाना चाहिए?

+0

मैं वसंत applicationcontext.xml या किसी भी को फिर से लोड नहीं करना चाहता वसंत सेम पहले से ही लोड हो गया है। मैं समाधान फिल सैक्रे को हल करने का प्रयास करूंगा। – zkarthik

1

मैं जेआरबेल का उपयोग करके विकसित करता हूं और मैं आपकी कॉन्फ़िगरेशन को रीफ्रेश करने की अपेक्षा करने से बहुत सावधान रहूंगा। स्पा के साथ नहीं, जावा के साथ ठीक काम करता है।

-1

आप प्रसंग जोड़ने के लिए चाहते हैं, तो मैंने किया है कि निम्नलिखित तरीके से:

public class ApplicationContextUtil 
{ 
    static String[] configFiles = {"applicationContextParent.xml"}; 

    private static ApplicationContext context = null; 

    static 
    { 
     context = new ClassPathXmlApplicationContext (configFiles); 
    } 

    public static void addContext(String[] newConfigFiles) 
    { 
     // add the new context to the previous context 
     ApplicationContext newContext = new ClassPathXmlApplicationContext (newConfigFiles, context); 
     context = newContext; 
    } 
    public static ApplicationContext getApplicationContext() 
    { 
     // return the context 
     return context; 
    } 
} 

यह आपके संदर्भ प्रदाता वर्ग है। विवरण के लिए, आप my blog