2015-02-27 10 views
9

मैं अपने असाइनमेंट के लिए स्प्रिंग बूट का उपयोग करने की योजना बना रहा हूं। डेटाबेस के कनेक्शन के साथ यह एक सामान्य सर्वर अनुप्रयोग है। मुझे पता है कि मैं अपनी संपत्तियों को बाहरी बनाने के लिए Spring Configuration का उपयोग कर सकता हूं उदा। डीबी कनेक्शन विवरण। लेकिन मेरे पास अन्य गतिशील गुण भी हैं जिन्हें रनटाइम पर अपडेट किया जाना आवश्यक है। जैसे फ्लिपर्स/फीचर झंडे। मेरे आवेदन की कुछ विशेषताओं को गतिशील रूप से नियंत्रित करने की आवश्यकता है उदा। की तरह एक संपत्ति की कल्पना app.cool-feature.enable = सच और फिर थोड़ी देर में एक ही सुविधा तक बंद कर दिया जाएगा app.cool-feature.enable = falseवसंत बूट का उपयोग करते समय गतिशील गुणों को कैसे कॉन्फ़िगर करें?

कोई सुझाव के बाद क्या सबसे अच्छा अभ्यास है रनटाइम पर ऐसे गतिशील व्यवहार को घेरने के आसपास? मैं निम्नलिखित विकल्पों के परिवर्तन को गति प्रदान करने के बारे में सोच सकते हैं ...

  • एक JMS संदेश सर्वर उदाहरण के लिए ऊपर संपत्ति परिवर्तन के साथ
  • कॉल एक उजागर एपीआई endpoint सर्वर उदाहरण पर जैसे भेजें पोस्ट http://myapp/admin/config/update { "config": { "app.cool-feature.enable": सच } }

मैं जानता हूँ कि मैं इस को लागू करने अपने ही कस्टम कोड लिख सकते हैं (यह 3 के लिए होगा समय) लेकिन बस सोच रहा है कि गतिशील संपत्ति विन्यास के आसपास पहले से ही मानक तरीका/सामान्य अभ्यास है जो मुझे पता नहीं है। यह भी अच्छा होगा अगर यह अपाचे चिड़ियाघर, कोरोस आदि, नेटफ्लिक्स क्यूरेटर इत्यादि जैसे अन्य समाधानों के साथ काम कर सके और वसंत के साथ घनिष्ठ एकीकरण हो।

विचार? अपने मुखपृष्ठ से www.togglz.org

:

उत्तर

2

आप Togglz पर एक नज़र डालें करना चाह सकते हैं

Togglz फ़ीचर के एक कार्यान्वयन है जावा के लिए पैटर्न टॉगल करता है। फ़ीचर टॉगल निरंतर तैनाती और वितरण के संदर्भ में एक बहुत ही सामान्य फुर्तीली विकास प्रथाएं हैं। मूल विचार यह है कि आप जिस नई सुविधा पर काम कर रहे हैं उसके साथ एक टॉगल को जोड़ना है। यह आपको व्यक्तिगत उपयोगकर्ताओं के लिए भी एप्लिकेशन रनटाइम पर इन सुविधाओं को सक्षम या अक्षम करने की अनुमति देता है।

टोग्लज़ वसंत ढांचे के लिए बाध्य नहीं है लेकिन इसका समर्थन करता है।

5

यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं तो @ConfigurationProperties पर एक नज़र डालें। आपको अपनी संपत्तियों तक पहुंचने के लिए एक बीन प्रदान करने की आवश्यकता होगी। इसलिए गुणों के मूल मूल्य निष्पादन के दौरान बदला जा सकता है क्योंकि वे एक बीन के नियमित गुण हैं।

आपके मामले में उदाहरण के लिए:

@Component 
@ConfigurationProperties 
public class JmsProperties { 

    private String url = "vm://localhost" (let's suppose you use ActiveMQ); 

    public String getUrl()... 
    public void setUrl(String value)... 

} 

और फिर आप संदेश श्रोता JMS में इस सेम इंजेक्षन।

बेशक

अगर आप JMS और स्प्रिंग बूट, स्वचालित के साथ आप पहले से ही गुण वर्ग है का उपयोग करें ...

3

आपका आवश्यकता "स्प्रिंग बादल कॉन्फ़िग" के लिए एक अच्छा यूज-केस न केवल आप अपने सभी हो सकता है जहां है कॉन्फ़िगरेशन केंद्रीय रूप से स्थित है लेकिन उन्हें गतिशील रूप से रीफ्रेश भी कर सकता है और जो बदले में आपके संदर्भ एप द्वारा अगले ही पल से उठाया जा सकता है।इसके लिए इस मानक वसंत link देखें।

संबंधित मुद्दे

 संबंधित मुद्दे