2012-09-27 13 views
5

मैं सीडीआई 1.0 के वेल्ड कार्यान्वयन का उपयोग कर रहा हूं और मुझे वसंत में बीन आलसी बनाने का तरीका नहीं मिल रहा है (एक्सएमएल में @Lazy या lazy-init का उपयोग करके)। क्या सीडीआई के Injector को स्टार्टअप पर बीन शुरू करने का तरीका नहीं है?एक सीडीआई बीन आलसी शुरू करने के लिए कैसे?

+0

http://stackoverflow.com/questions/15920758/java-ee-6-inject-lazy –

उत्तर

6

नहीं, यह सीडीआई में संभव नहीं है। सबसे नज़दीकी चीज जो आप प्राप्त कर सकते हैं वह एक नया इंजेक्शनपॉइंट (एक एक्सटेंशन का उपयोग करके) कार्यान्वयन करना होगा जो प्रॉक्सी देता है और प्रॉक्सी पहले विधि के आमंत्रण पर सब कुछ शुरू कर देगा। http://www.adam-bien.com/roller/abien/entry/lazy_injection_with_javax_inject

@Inject 
Instance<MyObject> object; 

सेम केवल आवश्यकता आरंभ नहीं हो जाता का उपयोग करना ... कि आप क्या चाहते हैं नहीं कर रहा है:

+0

का डुप्लिकेट तो, @Inject Instance beantypeProvider का उपयोग करके; यह सही काम करना चाहिए? –

+1

उम, मेरी पहली प्रतिक्रिया यह कहना है कि काम कर सकता है। यद्यपि यदि आप एक सीडीआई 1.0 कार्यान्वयन का उपयोग कर रहे हैं तो इंस्टेंस निर्भर स्कोप्ड उदाहरणों की रिसाव स्मृति करता है। – LightGuard

+0

आप किस कार्यान्वयन के बारे में बात कर रहे हैं? आपका संदर्भ कहां है? –

4

पर मेरा उत्तर देखते हैं?

+0

[एडम बिएन के अनुसार] (http://www.adam-bien.com/roller/abien/entry), वहां है इसका एक विकल्प है कि _might_ थोड़ा हल्का हो: केवल 'प्रदाता ' के बजाय 'प्रदाता ' इंजेक्शन देना, बाकी सब एक ही हैं। –

+1

@ हेन ब्लॉड एडम बिएन के वेबलॉग में प्रविष्टि का लिंक बदल गया है [javax.inject.Provider के साथ आलसी इंजेक्शन] (http://www.adam-bien.com/roller/abien/entry/lazy_injection_with_javax_inject)। – ltlBeBoy

+0

उत्तर अद्यतन, धन्यवाद –

0

यदि बीन आप इंजेक्शन कर रहे हैं तो सामान्य दायरे में है (@SessionScoped, @RequestScoped आदि), यह आलसी तत्काल हो जाएगा। आपको अपने क्लाइंट बीन में जो मिलता है वह एक प्रॉक्सी है जो पहली बार प्रॉक्सी पर एक विधि का आह्वान करते समय एक ठोस उदाहरण को इंगित नहीं करता है।

जैसा कि अन्य ने पहले ही बताया है, @Inject Instance<MyBean> myBeanInstance; का उपयोग स्पष्ट आलसी तत्कालता स्थापित करने के लिए भी किया जा सकता है।

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