मेरे पास एक वसंत नक्शा समस्या है जो मुझे आँसू ला रही है।उपयोग: वसंत में नक्शा नक्शा प्रकार के हर बीन को चुनने
मेरे वसंत इस तरह दिखता है:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
">
<util:map id="mockMap">
<entry key="userTest1" value="test1"/>
<entry key="userTest2" value="test2"/>
<entry key="userTest3" value="test6"/>
</util:map>
</beans>
तो कोड जहां मैं इस प्रकार है autowiring हूँ (अप्रासंगिक भागों लोप):
@Autowired
@Resource(name="mockMap")
Map<String, String> testMap;
@Test
public void testGetGearListActivityOK() {
for (String key : testMap.keySet()) {
System.out.println("key = " + key);
}
}
आश्चर्यजनक पर्याप्त, यह वास्तव में मुझे एक दे देंगे ऑटोवॉयरिंग चरण पर त्रुटि कह रही है कि कोई बीन्स मिलान प्रकार स्ट्रिंग नहीं है।
[junit] key = mockMap [junit] key = org.springframework.context.annotation.internalConfigurationAnnotationProcessor [junit] key = org.springframework.context.annotation.internalAutowiredAnnotationProcessor [junit] key = org.springframework.context.annotation.internalRequiredAnnotationProcessor [junit] key = org.springframework.context.annotation.internalCommonAnnotationProcessor [junit] key = systemProperties [junit] key = systemEnvironment [junit] key = messageSource [junit] key = applicationEventMulticaster [junit] key = lifecycleProcessor
मैं नहीं किया है अभी तक के लिए प्रवेश के प्रमुख खंड प्राप्त करने में सक्षम हो गया: हालांकि, अगर मैं बदल इकाई परीक्षण में मानचित्र मानचित्र रूप में परिभाषित किया जा करने के लिए तो मैं पालन आउटपुट प्राप्त वास्तव में एक कुंजी के रूप में दिखाई देते हैं। यदि मैं मानचित्र को मानचित्र पर वापस बदलता हूं और कुछ को अपने वसंत में जोड़ता हूं तो मानचित्र उनके आईडी को चाबियों के रूप में उपयोग करके उन लोगों के साथ पॉप्युलेट करता है।
मैं यहां इतनी उलझन में हूं और अतीत में एक सभ्य राशि वसंत का उपयोग किया है। अगर किसी के पास कोई सुराग है कि बिल्ली यहाँ क्या चल रहा है, तो मैं बहुत आभारी हूं।
अग्रिम धन्यवाद।
इसके अलावा, मैं इस सवाल को देखा: Auto-wiring a List using util schema gives NoSuchBeanDefinitionException
लेकिन समाधान वहाँ @Resource है, जो मैं पहले से ही कर रहा हूँ उपयोग करने के लिए है ..
ऑटोवायर संसाधन को ओवरराइड कर रहा है और इसलिए वसंत वसंत संदर्भ होने वाला पहला मानचित्र ऑब्जेक्ट ढूंढ रहा है। यही कारण है कि आप कुंजी के रूप में वर्णित कुंजी प्राप्त करते हैं। – dennisjtaylor
असल में क्या हो रहा है कि यदि आप किसी भी संग्रह पर @Autowired का उपयोग करते हैं तो यह किसी भी बीन की तलाश करेगा जो आपके क्वालीफायर से मेल खाता है (या उस प्रकार के सभी बीन्स यदि आपके पास क्वालीफायर नहीं है) और उन्हें संग्रह में जोड़ें। यदि आपके पास उस प्रकार के किसी भी बीन्स नहीं हैं तो आपको उस ऑब्जेक्ट की ऑटोवॉयरिंग के दौरान "कोई बीन्स नहीं मिला, कम से कम एक अपेक्षित" अपवाद मिलेगा। – Craig
आज मैंने इस पर 3 घंटे बिताए :( – Nayn