के साथ एनोटेटेड मैं @AutoWired का उपयोग एक प्रबंधित बीन में @ कॉम्पोनेंट के साथ कॉन्फ़िगर किए गए एक गैर-प्रबंधित बीन इंजेक्ट करने के लिए करना चाहता हूं। मैं बहुत यकीन है कि मैं विन्यास का अधिकार है, लेकिन किसी कारण से मैं अपवाद बार आ रही है:ऑटोमॉयरिंग अप्रबंधित बीन्स @ कॉम्पोनेंट
No unique bean of type [foo.Baz] is defined: Unsatisfied dependency of type [class foo.Baz]: expected at least 1 matching bean
त्रुटि के आधार पर, मैं इसे बाज वर्ग ढूँढने में सक्षम नहीं है अनुमान लगा रहा हूँ, लेकिन मैं कर रहा हूँ यकीन नहीं है कि क्यों। यह मेरी समझ है कि संदर्भ: XML कॉन्फ़िगरेशन में वसंत-कॉन्फ़िगर किया गया तत्व मुझे ऐसा करने की अनुमति देना था। मैंने उचित जार फ़ाइलों (spring-weaving.jar और aspectjweaver.jar) को शामिल करना भी सुनिश्चित किया है।
यहां मेरे सेट अप का एक सरल उदाहरण है।
मेरे एक्सएमएल config:
<beans ...>
...
<context:annotation-config/>
<context:spring-configured/>
<context:component-scan base-package="foo"/>
<bean id="bar" class="foo.Bar"/>
...
</beans>
मैं एक कामयाब सेम है:
package foo;
public class Bar {
@Autowired
private Baz baz;
public void setBaz(Baz baz) {
this.baz = baz;
}
...
}
और एक अप्रबंधित सेम:
package foo;
@Component
public class Baz {
...
}
वहाँ कुछ है मैं याद कर रहा हूँ?
EDIT: लॉग बीन्स को तत्काल स्थापित करता है, और foo.Baz उनमें से एक नहीं है। मुझे नहीं पता कि यह @ कॉम्पोनेंट एनोटेटेड क्लास क्यों नहीं उठा रहा है।
लॉगिंग क्या कहती है? क्या यह उल्लेख करता है कि यह foo पैकेज में ऑटो-डिटेक्टिंग बीन्स है? डीबग लॉगिंग का कहना चाहिए कि @ कॉम्पोनेंट बीन्स पाए गए थे। – skaffman
संयोग से, आप जो करना चाहते हैं उसके लिए पहलू/बुनाई/वसंत-कॉन्फ़िगर किया गया सामान आवश्यक नहीं है। यह सिर्फ बुनियादी autowiring है। – skaffman