2012-01-20 17 views
12

मैं जैसे 1, 2, 3, 4, 5, 6, 7, 8, 9, 10कैसे वसंत सेम में एक पूर्णांक सरणी सुई

मैं एक पूर्णांक के रूप में उपयोग करना चाहते हैं पूर्णांकों की एक सूची है मेरे POJO में सरणी।

हालांकि, मैं इसे अपनी कक्षा के अंदर नहीं चाहता हूं, लेकिन इसे गुण फ़ाइल में बाहरी बनाना चाहता हूं और फिर कक्षा की संपत्ति के रूप में इसे अपने एक्सएमएल में इंजेक्ट करना चाहता हूं।

यह कैसे करें?

पढ़ने के लिए धन्यवाद!

उत्तर

5

वहाँ इस तरह डाल करने के लिए एक तरीका है:

<beans:bean id="myBean" class="MyClass"> 
    <beans:property name="myIntArray" > 
    <beans:list> 
     <beans:value>1</beans:value> 
     <beans:value>2</beans:value> 
     <beans:value>3</beans:value> 
    </beans:list> 
    </beans:property> 
</beans:bean> 

लेकिन जैसा कि आप इन मूल्यों की आवश्यकता से एक गुण फ़ाइल पढ़ने के लिए, Icouldn't गुण फ़ाइल से पढ़ने का एक तरीका ढूंढें :-(

लेकिन मेरे पास इसके लिए एक बदसूरत फिक्स है। इस प्रकार एक्सएमएल में

Class MyCLass 
    { 
     private Integer[] myIntArray; 
     private String[] myIntArrayStr; 

     public Integer[] getMyIntArray(){ 
      return this.myIntArray; 
     } 
     public void setMyIntArray(Integer[] intArray){ 
      this.myIntArray=intArray; 
     } 
     public void setMyIntArrayStr(String[] myIntArrayStr) { 
      this.myIntArrayStr = myIntArrayStr; 
      //we are going to read the values as a string array and set out integer array inside this setter 
      int i=0; 
      Integer[] myInts = new Integer[myIntArrayStr.length]; 
      for(String s: myIntArrayStr){ 
       myInts[i]=Integer.parseInt(s); 
       i++; 
      } 
      setMyIntArray(ints); 
     } 
    } 

लिखें:: कुछ इस तरह करने के लिए अपने वर्ग बदलें

<beans:bean id="myBean" class="MyClass"> 
     <beans:property name="myIntArrayStr"> 
     <beans:value> 
     ${myvalues} <!-- this is gonna come from properties file as previously was --> 
     </beans:value> 
     </beans:property> 

    </beans:bean> 

आशा इस मदद करता है।

+0

के बाद से काम करना चाहिए, मैंने अपने आप पर बदसूरत तरीके का पालन किया! फिर भी धन्यवाद! – Nik

12

अल्पविराम के साथ मूल्यों को अलग करने में यह

करना चाहिए अपने वर्ग इस

Class MyCLass 
{ 
    private Integer[] myIntArray; 

    public Integer[] getMyIntArray(){ 
     return this.myIntArray; 
    } 
    public void setMyIntArray(Integer[] intArray){ 
     this.myIntArray=intArray; 
    } 
} 

आपका प्रसंग फ़ाइल तरह दिखता है, तो कुछ इस तरह होना चाहिए:

<bean id="myBean" class="MyClass"> 
    <property name="myIntArray" value="1,2,3,4,5"></property> 
</bean> 

अगर आप चाहते हैं करने के लिए उपयोगकर्ता एक गुण फ़ाइल:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:myProps.properties"/> 
</bean> 
<bean id="myBean" class="MyClass"> 
    <property name="myIntArray" value="${myvalues}"></property> 
</bean> 

आप में myProps.properties फ़ाइल

myvalues=1,2,3,4,5 
+1

गीज़, आपने 20 मिनट का इंतजार किया; कुछ धैर्य रखें –

+0

@Rifat: क्या आप कृपया अपना उत्तर क्लास कोड के साथ भी अपडेट कर सकते हैं (मूल रूप से सेटटर) ... जो उत्तर को पूरा कर देगा .. मैं आपका जवाब संपादित नहीं कर सकता !! – Nik

+3

@Rifat: यह काम नहीं कर रहा है ... मुझे निम्न त्रुटि मिल रही है: द्वारा: org.springframework.beans.TypeMismatchException: आवश्यक प्रकार 'java.lang.String' के गुण मान को परिवर्तित करने में विफल 'java.lang इंटेगर [] 'संपत्ति' myCodes 'के लिए; नेस्टेड अपवाद java.lang.NumberFormatException है: इनपुट स्ट्रिंग के लिए: "1000,2000,3000,4000,5000" – Nik

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