2010-01-22 10 views
13

में इंटीग्रर्स, डबल्स, फ्लोट्स, स्ट्रिंग इत्यादि घोषित करना कभी-कभी, वसंत यह नहीं समझ सकता कि "मूल्य" किस प्रकार का होना चाहिए। ऐसा तब होता है जब संपत्ति या निर्माता "java.lang.Object" प्रकार का होता है। इन मामलों में, वसंत "java.lang.String" के लिए डिफ़ॉल्ट है। कभी-कभी यह का उपयोग करते समय उदाहरण के लिए सही विकल्प नहीं है,: देखने में विफल रहता है और इसे वापस डिफ़ॉल्ट-मूल्य पर गिर गया हैस्प्रिंग एक्सएमएल

<jee:jndi-lookup id="test" jndi-name="java:comp/env/test" 
    default-value="10" expected-type="java.lang.Integer"/> 

है, तो एक प्रकार मेल नहीं खाता है। तो, इसके बजाय, इसे करने की जरूरत है:

<bean id="test" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:comp/env/test" /> 
    <property name="defaultObject"> 
     <bean class="java.lang.Integer"> 
     <constructor-arg value="10" /> 
     </bean> 
    </property> 
    </bean> 

जो कुछ हद तक वर्बोज़ है, खासकर अगर उनमें से बहुत सारे हैं।

<constructor-arg value="10" type="int"/> 

अनुभाग देखें:

 <bean class="java.lang.Integer"> 
     <constructor-arg value="10" /> 
     </bean> 

उत्तर

14

स्प्रिंग 3.0 के बाद से, आप उपयोग कर सकते हैं स्प्रिंग अभिव्यक्ति भाषा: #{new Integer(10)}

<jee:jndi-lookup id="test" jndi-name="java:comp/env/test" 
    default-value="#{new Integer(10)}" expected-type="java.lang.Integer"/> 
+4

आप छोटे 'डिफ़ॉल्ट-मूल्य = "# {10}" ' –

4

आप ऐसा करने में सक्षम होना चाहिए: वहाँ इस प्रारूप का उपयोग किए बिना एक पूर्णांक/लांग/डबल/फ्लोट/स्ट्रिंग शाब्दिक घोषित करने के लिए कुछ आसान तरीका है 3.3.1.1.1.1 का Spring Reference

+1

वास्तव में इस समस्या को हल नहीं करता है, या मैं कुछ याद कर रहा हूं? –

+0

मैंने सोचा था कि आप स्प्रिंग फोर्स को किसी निश्चित प्रकार के मूल्य को बिना किसी प्रकार के घोषित किए जाने के लिए चाहते थे। – Kevin

+0

यहां समस्या वास्तव में जी xml नेमस्पेस –

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