2013-10-14 4 views
23

के साथ एक्सएमएल और जावा कॉन्फ़िगरेशन मिलाकर मैं एक नया एप्लीकेशन बना रहा हूं जो एक्सएमएल की बजाय जावा कॉन्फ़िगरेशन के माध्यम से वसंत को कॉन्फ़िगर करता है। यह ऐप एक मॉड्यूल पर निर्भर है जो xml शैली कॉन्फ़िगरेशन का उपयोग करता है।वसंत

No qualifying bean of type [com.myModule.myServiceImp] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

यह सेम मॉड्यूल के applicationContext.xml में घोषित किया जाना चाहिए: जब मैं कोशिश करते हैं और मेरी एप्लिकेशन लॉन्च, मैं निम्नलिखित त्रुटि मिलती है। इसे संभालने का सही तरीका क्या है? मैं बस के रूप में मैं करूंगा अगर मैं आवेदन संदर्भों एक साथ stringing था एप्लिकेशन की web.xml में इसे जोड़ने की कोशिश की:

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      classpath:com/myModule/appbase-context.xml 
      com.myApp.AppConfig 
     </param-value> 
    </context-param> 

लेकिन मैं अभी भी एक ही त्रुटि मिली। ऐसा करने का सही तरीका क्या है?

उत्तर

44

अपनी कॉन्फ़िगरेशन क्लास में, आप @ImportResource एनोटेशन के माध्यम से एक्सएमएल कॉन्फ़िगरेशन आयात कर सकते हैं।

कुछ इस तरह:

@Configuration 
@ImportResource({"classpath:appbase-context.xml"}) 
public class AppConfig { 
    // @Bean definitions here... 
} 

याद रखें, जब आप वसंत के जावा विन्यास का उपयोग कर रहे हैं, तो आप एक अतिरिक्त context-param उस वर्ग अपने आवेदन संदर्भ के लिए उपयोग करने के लिए कहते हैं निर्दिष्ट करने की आवश्यकता:

<context-param> 
    <param-name>contextClass</param-name> 
    <param-value> 
     org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
    </param-value> 
</context-param> 
+0

मैं पहले भाग मिला है लेकिन अनुस्मारक के लिए धन्यवाद। Context.xml के लिए, क्या मुझे बस इसे आयात करने की आवश्यकता है और यह मेरे लिए बाकी है? या मुझे इसे किसी भी तरह "चलाने" की ज़रूरत है? –

+1

जब 'ApplicationContext'' @ कॉन्फ़िगरेशन 'वर्ग के लोड को बूटस्ट्रैप कर रहा है, तो यह इस एनोटेशन के लिए स्कैन करेगा और स्वचालित रूप से इसे भी लोड करेगा। –

+1

@ImportResource इसे चलाएगा। –