2009-07-27 14 views
5

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

अंतिम उपयोगकर्ताओं को सेवाओं को कॉन्फ़िगर करने की अनुमति देने के लिए सबसे अच्छी तकनीक क्या है (जो किसी एप्लिकेशन सर्वर के अंदर नहीं चलती)? आप लोग क्या उपयोग करते हैं?

उत्तर

10

"निरंतर" कॉन्फ़िगरेशन को परिभाषित करने के लिए एक्सएमएल, ऑटो-वायरिंग या उसके कुछ संयोजन में स्पष्ट वायरिंग होने के कारण वसंत का उपयोग करें और फिर गुण फ़ाइलों में बाकी को बाहरी करें। डेटाबेस प्रमाण-पत्र इस का एक आम उदाहरण हैं।

इस के आधारभूत उदाहरण के लिए Spring and Ibatis Tutorial देखें। लघु संस्करण:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:database.properties"/> 
</bean> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${database.class}"/> 
    <property name="url" value="${database.url}"/> 
    <property name="username" value="${database.username}"/> 
    <property name="password" value="${database.password}"/> 
</bean> 
database.properties साथ

(classpath में):

database.username=scratch 
database.password=scratch 
database.class=oracle.jdbc.OracleDriver 
database.url=jdbc:oracle:thin:@localhost:1521:XE 
2

भूलें कि आप अपने एप्लिकेशन को बनाने के लिए स्प्रिंग एक्सएमएल फाइलों का उपयोग नहीं कर सकते हैं, लेकिन इन कॉन्फ़िगरेशन के भीतर डेटाबेस URL आदि प्रदान करने के लिए प्रॉपर्टी फाइलों का उपयोग करें।

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

5

आप एक प्रॉपर्टी फ़ाइल में एप्लिकेशन कॉन्फ़िगरेशन स्टोर कर सकते हैं और उन गुणों में लोड करने के लिए PropertyPlaceholderConfigurer का उपयोग कर सकते हैं।

तो, अपने applicationContext फ़ाइल में, तो आप इस हो सकता है:

<bean id="dataSource" class="com.x.y.z.DataSource"> 
    <property name="url" value="${dataSource.url}" /> 
</bean> 

dataSource.url संपत्ति में लोड हो जाएगा से अपने गुण फ़ाइल।

मैं जिस एप्लिकेशन पर काम कर रहा हूं उसमें मैं इसका उपयोग करता हूं, और यह कॉन्फ़िगरेशन को बहुत आसान बनाता है!

0

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

2

आप अभी भी वसंत का उपयोग आईओसी (एक्सएमएल, जावा कॉन्फ़िगरेशन, ऑटोवॉयरिंग, जो भी हो) के साथ अपने वर्गों के साथ तार करने के लिए कर सकते हैं लेकिन फिर भी संपत्ति फ़ाइलों का उपयोग उन मानों को रखने के लिए करते हैं जो डेटाबेस कनेक्शन जैसे तैनाती के आधार पर बदल सकते हैं।

PropertyPlaceholderConfigurer पर देखें। example के साथ आप इसका उपयोग कैसे करेंगे इसका एक ब्लॉग पोस्ट यहां दिया गया है।

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