2009-06-08 6 views
10

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

उत्तर

2

संपादित https://github.com/typesafehub/config

मूल (संभवतः बहुत उपयोगी नहीं) typesafe config आप विन्यास के लिए एक सरल और शक्तिशाली समाधान देता है , आप स्कैला कोड के माध्यम से स्वयं कॉन्फ़िगर कर सकते हैं। "

स्कैला के रनटाइम लिंकिंग कक्षाओं को रनटाइम पर बदलने की अनुमति देता है और इन भाषाओं का सामान्य दर्शन कॉन्फ़िगरेशन पर सम्मेलन का पक्ष लेता है। यदि आप गैज़िलियन संपत्ति फ़ाइलों से निपटना नहीं चाहते हैं, तो बस उन्हें नहीं मिला है।

+0

मैं नहीं देख रहा हूं कि यह प्रश्न का उत्तर कैसे देता है। क्या आप विस्तार कर सकते हैं? "रनटाइम पर स्वैपिंग" गतिशील रूप से रनटाइम पर्यावरण का जवाब देकर कॉन्फ़िगरेशन को इंगित करता है। लेकिन कई विन्यास पैरामीटर रनटाइम के लिए अज्ञात हैं, जैसे कि डीबी पासवर्ड या कौन सा व्यवस्थापक त्रुटि ईमेल प्राप्त करता है। हम सेवा-खोज तंत्र के बारे में बात कर सकते हैं, लेकिन यह छोटी परियोजनाओं के लिए अधिक है और उनके पास अपने स्वयं के कॉन्फ़िगरेशन पैरामीटर होंगे, प्रश्न को डाउनहिल पर लात मारना होगा। किसी बिंदु पर, आपको अपने कार्यक्रम में इनपुट प्रदान करने की आवश्यकता है। यदि आप इसे कुंजी/मूल्य जोड़ों में व्यवस्थित करते हैं, तो आपके पास संपत्ति फाइलें हैं ... – DrGary

+0

पर्यावरण-विशिष्ट सेटिंग्स (जो वास्तव में बाहरी हैं जो केवल बाह्य होनी चाहिए) के लिए आप जावा में सिस्टम गुण प्राप्त कर सकते हैं, जैसे: वैल्यू डेटाबेस नाम = System.getProperty ("myapp.db.name")। फिर आप इन्हें अपनी स्टार्टअप स्क्रिप्ट में कॉन्फ़िगर करें और उन्हें रनटाइम पर दें: जावा-Dmyapp.db.name = DeeBee MainClass। पासवर्ड के लिए, आपको शायद उन फ़ाइलों में नहीं होना चाहिए, हालांकि, हो सकता है कि आप अपना ऐप शुरू होने पर संकेत दे सकें। – George

+0

क्या आप एक उदाहरण दे सकते हैं। यह बहुत उपयोगी लगता है। – Jus12

4

आपके पास गैज़िलियन संपत्ति फाइल क्यों होगी?

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

आवेदन गुणों के लिए, आप या तो एक निर्भरता इंजेक्शन ढांचे (जैसे वसंत) या केवल सादे पुरानी संपत्ति फ़ाइलों का उपयोग कर सकते हैं। मुझे यह देखने में भी दिलचस्पी होगी कि स्कैला इसके ऊपर कुछ भी प्रदान करता है या नहीं।

2

Configgy देखें जो एक साफ छोटी पुस्तकालय की तरह दिखता है। इसमें घोंसले और परिवर्तन-अधिसूचना शामिल है। इसमें एक लॉगिंग लाइब्रेरी भी शामिल है।

दुर्भाग्यवश, यह मैक उदाहरणों पर मेरे लिए संकलित नहीं हुआ था। हमें बताएं कि क्या आपके पास बेहतर भाग्य है और आप क्या सोचते हैं ...

अद्यतन: हल मैक संकलन समस्याओं। यह post देखें।

"स्काला में प्रोग्रामिंग" से हवाला देते हुए:

"स्काला में -: