2012-11-08 32 views
6

मैं एक गुण फ़ाइल मेरी एक्सएमएल में परिभाषित किया गया है:क्या वसंत mvc3 में किसी XML में/if शर्तों को रखने का कोई तरीका है?

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="/WEB-INF/db.properties"></property>  
</bean> 

मैं फ़ाइल में एक संपत्ति है:

someprop = one 

प्रश्न

मेरी एक्सएमएल में मैं या तो जोड़ना चाहते हैं/एक बीन परिभाषा में एक संपत्ति को हटा दें। उदाहरण के लिए:

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.internal.url}" /> 
    <!--I want to add/remove the line below based on value in property file--> 
    <property name="username" value="${jdbc.internal.username}" /> 
</bean> 
+1

क्या मैं इसके बजाय अलग-अलग वातावरण के लिए अलग-अलग संपत्ति फ़ाइलों का सुझाव दे सकता हूं। इसे हल करने के लिए यह "मानक" तरीका है। – pap

+0

जो भी काम कर सकता है। हालांकि, मैं उलझन में हूं कि यह कैसे निर्धारित किया जाएगा कि कौन उठाया जाता है? क्या मुझे टॉमकैट में पर्यावरण का नाम कॉन्फ़िगर करना है? क्या कोई लिंक गहराई से जाता है? – birdy

+0

वैसे भी, चूंकि यह एक्सएमएल है और गुण फ़ाइल नहीं है। एक एनवी से दूसरे में तैनाती करते समय मुझे अभी भी xml फ़ाइल को बदलना होगा। – birdy

उत्तर

4

यह स्प्रिंगेल का उपयोग करके संभव हो सकता है। बीन परिभाषाओं को परिभाषित करने के लिए अभिव्यक्ति समर्थन अनुभाग here पढ़ें।

यदि यह एकाधिक वातावरण को संभालने के लिए है तो वसंत 3.1 bean definition profiles और Environment अवशेष प्रदान करता है।

+0

मुझे आपके द्वारा सुझाए गए लिंक में यह जवाब नहीं मिला है। प्रोफाइल ट्रिगर कैसे हो जाता है? मान लें कि मेरे पास दो प्रोफाइल हैं, मैं उनमें से एक को सक्रिय कर सकता हूं – birdy

+0

@birdy सक्रिय प्रोफ़ाइल को कई तरीकों से सेट किया जा सकता है। अधिक जानकारी के लिए यह पोस्ट देखें http://stackoverflow.com/questions/8587489/how-to-set-active-spring-3-1- पर्यावरण-profile-via-a-properites-file-and-not-v –