हम वर्तमान में विभिन्न गुण प्रदान करते हैं लेकिन विभिन्न फ़ोल्डरों के माध्यम से नहीं। हम
- वसंत के
PropertyPlaceholderConfigurer
- Maven प्रोफाइल (कुछ हम अपने देव वातावरण का निर्माण करने के लिए उपयोग करें),
- बिल्ड सर्वर (हमारे मामले में TeamCity)
- Maven चरणों का उत्पादन करने का एक मिश्रण के माध्यम से इस करना सही विरूपण साक्ष्य
- स्टार्ट-अप और निर्माण तर्क
हम क्या कर के मेरे समझ एल है अनुकरण किया, लेकिन उम्मीद है कि यह दूसरों के लिए एक उपयोगी उदाहरण के रूप में कार्य करता है और शायद खुद पर विचार करने के लिए।
हम पैरामीटर प्रदान करते हैं, जैसा कि आप नीचे देखेंगे, विभिन्न संपत्ति फ़ाइलों को इंगित करने के लिए। प्रत्येक प्रॉपर्टी फ़ाइल में किसी क्षेत्र/पर्यावरण के लिए कॉन्फ़िगरेशन है। मैं मौजूदा उपयोग की व्याख्या करूंगा जैसा कि मैं कर सकता हूं, अगर यह दूसरों के लिए कुछ उपयोग प्रदान करता है।
मैवेन प्रोफाइल का उपयोग करने के लिए हमने को हमारे पोम में development
के रूप में पहचाना है जिसमें env
नामक एक क्षेत्र कॉन्फ़िगरेशन प्रॉपर्टी शामिल है। मैं अभी तक पूरी तरह से नहीं जानता कि इसका उपयोग अभी तक हमारे प्रोजेक्ट में कैसे किया जा रहा है, हालांकि आप नीचे देखेंगे कि हमारे पीओएम में एक मेवेन कंपाइलर प्लगइन और मैवेन टॉमकैट प्लगइन शामिल है।
दिन-प्रतिदिन, डेवलपर्स के रूप में हम इंटेलिजे के भीतर से टॉमकैट पर स्थानीय रूप से हमारे आवेदन चलाते हैं और env
संपत्ति प्रदान करते हैं। स्टार्ट-अप पर env
संपत्ति पर classpath*:dev-common.properties
पर तर्क के रूप में प्रदान की जाती है। यह फ़ाइल एक गुण कॉन्फ़िगरेशन फ़ाइल है - हमारे अलग-अलग क्षेत्रों के लिए प्लेसहोल्डर मान सेट करना।
हमारे पोम में एक profile
के कार्यान्वयन है:
pom.xml में Maven
profile
का कार्यान्वयन -
env
का मूल्य हमारे PropertyPlaceholderConfigurer
उदाहरण 1 उपलब्ध कराया जाता है
<profile>
<id>development</id>
<activation>
<property>
<name>env</name>
<value>development</value>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
...
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
उदाहरण 2 - संपत्ति सामान्य निर्माण के लिए प्लेसहोल्डर configurer:
हम भी उपयोग OFA स्प्रिंग घटक बनाने के एक PropertyPlaceholderConfigurer
। संसाधन संसाधनों में क्लासपाथ पॉइंटर सेट अप करने के लिए हम बिल्ड निर्माण के सहयोग से इसका उपयोग करते हैं।
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>
${env}
</value>
</list>
</property>
उदाहरण 3 - परीक्षण के लिए संपत्ति प्लेसहोल्डर configurer:
हम वसंत संदर्भ विशेष रूप से एकीकरण परीक्षण जो भी PropertyPlaceholderConfigurer
का उपयोग के लिए स्थापित की है। इन्हें @ContextConfiguration(locations = {"classpath:test-dataexchange-application-context.xml"})
और @RunWith(SpringJUnit4ClassRunner.class)
के संयोजन का उपयोग करके एकीकरण परीक्षण कक्षा द्वारा उठाया जाता है)।
परीक्षण संदर्भ हम PropertyPlaceholderConfigurer
कॉन्फ़िगर के रूप में एक एकीकरण परीक्षण क्षेत्र के गुणों को लेने के लिए इस प्रकार है:
<bean id="testpropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:dev-local-common.properties</value>
</list>
</property>
अन्य नोट:
हम बिल्ड प्रबंधन के लिए टीम सिटी का उपयोग करें लेकिन मैंने नहीं देखा है कि ये सेटिंग्सकैसे हैंवहां उपयोग किया जाता है, अगर वे बिल्कुल हैं। मैं कल्पना कर सकता हूं कि निरंतर एकीकरण और वितरण की सहायता के लिए उपरोक्त दृष्टिकोणों को एक साथ जोड़ने की क्षमता है।
मुझे नहीं पता कि प्रोफ़ाइल को development
के रूप में पहचाना जा रहा है।यह कुछ है Iमेरे साथी टीम के सदस्यों के साथ पालन करना होगा।
संसाधन:
उपयोग Maven प्रोफाइल (http://maven.apache.org/guides/introduction/introduction-to-profiles.html) और संसाधनों फिल्टरिंग (http: // Maven आपको यह फ़ाइल इस प्रकार बना सकते हैं। apache.org/plugins/maven-resources-plugin/examples/filter.html) – willome