आप किसी प्रॉपर्टी फ़ाइल में अपनी चर विशेषताओं का उल्लेख कर सकते हैं और पर्यावरण विशिष्ट संपत्ति फ़ाइलों को परिभाषित कर सकते हैं, जैसे कि local.properties, production.propertied आदि।
अब पर्यावरण के आधार पर, इनमें से एक प्रॉपर्टी फाइल को एक ऐसे श्रोता में पढ़ा जा सकता है, जिसे सर्वलेटकोटेक्स्टलेनर की तरह, स्टार्टअप में आमंत्रित किया गया है।
संपत्ति फ़ाइल में विभिन्न कुंजियों के लिए पर्यावरण विशिष्ट मान शामिल होंगे।
नमूना "लोकल.प्रोपेटीज़"
db.logsDataSource.url=jdbc:mysql://localhost:3306/logs
db.logsDataSource.username=root
db.logsDataSource.password=root
db.dataSource.url=jdbc:mysql://localhost:3306/main
db.dataSource.username=root
db.dataSource.password=root
नमूना "उत्पादन.प्रक्रिया"
db.logsDataSource.url=jdbc:mariadb://111.111.111.111:3306/logs
db.logsDataSource.username=admin
db.logsDataSource.password=xyzqer
db.dataSource.url=jdbc:mysql://111.111.111.111:3306/carsinfo
db.dataSource.username=admin
db.dataSource.password=safasf@mn
इन गुणों की फ़ाइल का उपयोग करने के लिए, आप नीचे बताए अनुसार REsource का उपयोग कर सकते हैं
PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
ResourceLoader resourceLoader = new DefaultResourceLoader();
Resource resource = resourceLoader.getResource("classpath:"+System.getenv("SERVER_TYPE")+"DB.properties");
configurer.setLocation(resource);
configurer.postProcessBeanFactory(beanFactory);
SERVER_TYPE को पर्यावरणीय चर के रूप में परिभाषित किया जा सकता है, जो स्थानीय और उत्पादन पर्यावरण के लिए उचित मूल्यों के साथ है।
इन परिवर्तनों के साथ appplicationContext.xml में निम्नलिखित परिवर्तन होंगे
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="${db.dataSource.url}" />
<property name="username" value="${db.dataSource.username}" />
<property name="password" value="${db.dataSource.password}" />
उम्मीद है की यह मदद करेगा ।