मैं सीडीआई 1.0 के वेल्ड कार्यान्वयन का उपयोग कर रहा हूं और मुझे वसंत में बीन आलसी बनाने का तरीका नहीं मिल रहा है (एक्सएमएल में @Lazy
या lazy-init
का उपयोग करके)। क्या सीडीआई के Injector
को स्टार्टअप पर बीन शुरू करने का तरीका नहीं है?एक सीडीआई बीन आलसी शुरू करने के लिए कैसे?
उत्तर
नहीं, यह सीडीआई में संभव नहीं है। सबसे नज़दीकी चीज जो आप प्राप्त कर सकते हैं वह एक नया इंजेक्शनपॉइंट (एक एक्सटेंशन का उपयोग करके) कार्यान्वयन करना होगा जो प्रॉक्सी देता है और प्रॉक्सी पहले विधि के आमंत्रण पर सब कुछ शुरू कर देगा। http://www.adam-bien.com/roller/abien/entry/lazy_injection_with_javax_inject
@Inject
Instance<MyObject> object;
सेम केवल आवश्यकता आरंभ नहीं हो जाता का उपयोग करना ... कि आप क्या चाहते हैं नहीं कर रहा है:
का डुप्लिकेट तो, @Inject Instance
उम, मेरी पहली प्रतिक्रिया यह कहना है कि काम कर सकता है। यद्यपि यदि आप एक सीडीआई 1.0 कार्यान्वयन का उपयोग कर रहे हैं तो इंस्टेंस निर्भर स्कोप्ड उदाहरणों की रिसाव स्मृति करता है। – LightGuard
आप किस कार्यान्वयन के बारे में बात कर रहे हैं? आपका संदर्भ कहां है? –
पर मेरा उत्तर देखते हैं?
[एडम बिएन के अनुसार] (http://www.adam-bien.com/roller/abien/entry), वहां है इसका एक विकल्प है कि _might_ थोड़ा हल्का हो: केवल 'प्रदाता >' के बजाय 'प्रदाता >' इंजेक्शन देना, बाकी सब एक ही हैं। –
@ हेन ब्लॉड एडम बिएन के वेबलॉग में प्रविष्टि का लिंक बदल गया है [javax.inject.Provider के साथ आलसी इंजेक्शन] (http://www.adam-bien.com/roller/abien/entry/lazy_injection_with_javax_inject)। – ltlBeBoy
उत्तर अद्यतन, धन्यवाद –
यदि बीन आप इंजेक्शन कर रहे हैं तो सामान्य दायरे में है (@SessionScoped, @RequestScoped आदि), यह आलसी तत्काल हो जाएगा। आपको अपने क्लाइंट बीन में जो मिलता है वह एक प्रॉक्सी है जो पहली बार प्रॉक्सी पर एक विधि का आह्वान करते समय एक ठोस उदाहरण को इंगित नहीं करता है।
जैसा कि अन्य ने पहले ही बताया है, @Inject Instance<MyBean> myBeanInstance;
का उपयोग स्पष्ट आलसी तत्कालता स्थापित करने के लिए भी किया जा सकता है।
- 1. एक वर्ग के लिए एक सीडीआई/वेल्ड बीन को तुरंत कैसे चालू करें?
- 2. एनोटेशन के साथ गैर आलसी के रूप में एक बीन निर्दिष्ट करने के लिए कैसे करें
- 3. सीडीआई
- 4. सीडीआई
- 5. जेएसएफ सीडीआई: वार्तालाप स्कोप बीन [एस] सर्वोत्तम अभ्यास
- 6. सीडीआई
- 7. सीडीआई राज्य सत्र सत्र बीन कैसे हटाता है?
- 8. स्प्रिंग बीन परिभाषाओं के लिए डिफ़ॉल्ट-आलसी-इनिट = सही ओवरराइड
- 9. एक बीन शुरू करने का सबसे अच्छा तरीका क्या है?
- 10. सीडीआई: विभिन्न मॉड्यूल/बीन अभिलेखागारों में इंटरसेप्टर्स का उपयोग
- 11. नामित सीडीआई बीन का डिफ़ॉल्ट दायरा क्या है?
- 12. सीडीआई में प्रबंधित पाइपर्टी @ नामांकित बीन रिटर्न शून्य
- 13. एक FacesConverter में सीडीआई इंजेक्शन
- 14. शॉर्टकट एक गतिविधि शुरू करने के लिए
- 15. सीडीआई आवेदन और आश्रित स्कोप कचरा संग्रह को प्रभावित करने के लिए षड्यंत्र कर सकते हैं?
- 16. सीडीआई: @ वैकल्पिक बनाम @ क्वालिफायर
- 17. मैं फ़िल्टर के अंदर से सत्र स्कोप्ड सीडीआई बीन कैसे प्राप्त करूं?
- 18. कैसे covariant चर शुरू करने के लिए?
- 19. कैसे शुरू करने के लिए "emacsformacosx" टर्मिनल
- 20. कैसे शुरू करने के लिए सी #
- 21. @Autowired बीन एक और बीन
- 22. एक ईजीबी स्टेटलेस सत्र बीन
- 23. सीडीआई/वेल्ड - वार्तालाप समाप्त करने के बाद ब्राउज़र पेज को रीफ्रेश कैसे करें?
- 24. सीडीआई सत्र स्कोप्ड बीन एक ही सत्र में दो उदाहरणों में परिणाम
- 25. सीडीआई में एक बड़े दायरे के बीन उदाहरण में इंजेक्शन वाले एक छोटे से दायरे का बीन उदाहरण - यह कैसे काम करता है?
- 26. महोत्सव के लिए विकास शुरू करने के लिए कैसे करें
- 27. उत्पन्न करने के लिए कैसे ऑटो के साथ एक हाइबरनेट आईडी एक शुरू करने मूल्य
- 28. एक बीन वर्ग संपत्ति के लिए जेएलिस्ट को कैसे बांधें
- 29. विधि पैरामीटर इंजेक्शन के लिए सीडीआई का उपयोग कैसे करें?
- 30. वसंत: कैसे एक स्प्रिंग बीन को चालू करने के लिए एक रनटाइम पैरामीटर लेता है?
http://stackoverflow.com/questions/15920758/java-ee-6-inject-lazy –