dependency injection - सीडीआई इंजेक्शन पाश




dependency-injection cdi (2)

मैंने javax.inject.Provider का स्पष्ट उपयोग करके समस्या का समाधान किया। यद्यपि मुझे लगता है कि यह WED द्वारा स्वचालित रूप से हुड के तहत किया जाना चाहिए यह मेरे लिए भी मामला नहीं था। यह मेरे लिए काम किया और मेरी संबंधित समस्या का समाधान किया।

class A {
    @Inject
    Provider<B> b; // access with b.get()
}

class B {
    @Inject
    Provider<A> a; // access with a.get()
}

मैंने इसका परीक्षण नहीं किया है, लेकिन चक्र को तोड़ने के लिए एक प्रदाता का उपयोग करने के लिए पर्याप्त हो सकता है, यानी आपको इसे दोनों वर्गों में उपयोग करने की आवश्यकता नहीं है

मैं जेबीस 7.1.1 में एक वेल्ड कन्टेनर में सीडीआई इंजेक्शन के साथ एक मुद्दे में दौड़ रहा हूं

मेरे पास निम्न ऑब्जेक्ट मॉडल है:

@Stateless
class ServiceEjb {
@Inject
A a;
}

class A {
@Inject
B b;
}

class B {
@Inject
A a;
}

मेरे स्टेटलेस क्लास में इंजेक्शन लूप और क्रैश के साथ ए या बी को इंजेक्ट करने की कोशिश करते समय, javax.enterprise.inject.CreationException के साथ।

मैं कई चीजों की कोशिश करता हूं (स्कॉपिंग, @ सििंगलेटन ऑन ए या बी पर सफलता के बिना)। मैं कोड को तोड़ना नहीं चाहता, और ये इंजेक्शन इंद्रियां बनाता है

किसी भी सुराग को काफी सराहना की जाएगी।


आपको बी के बजाय (और / या इंस्टेंस <ए ऐ के बजाय एक इन्सेंट <B> इंजेक्ट करना चाहिए)





jboss-weld