2012-11-23 21 views
8

जावा EE 5 के बाद से CDI, कैसे डि यहाँ में काम करता है नहीं है?जावा ईई 5 निर्भरता इंजेक्शन?

एक EJB एक वर्ग है कि एक गैर EJB है में @EJB साथ इंजेक्ट किया जा सकता है? एक EntityManager एक वर्ग एक गैर EJB है कि में @PersistenceContext साथ इंजेक्ट किया जा सकता है (कंटेनर स्थानीय संसाधन नहीं प्रबंधित EntityManager)? या गैर-ईजेबी कक्षाओं में संसाधन लाने का एकमात्र समाधान जेएनडीआई लुकअप द्वारा है?

गैर-ईजेबी कक्षा द्वारा मेरा मतलब एक वर्ग है जिसे @Stateless/@Statefull या अन्य के साथ एनोटेट नहीं किया गया है।

+1

याद रखिए पूर्व CDI चौखटे आप इस स्थिति में उपयोग कर सकते हैं देखते हैं कि - Guice, PicoContainer, यहां तक ​​कि खतरनाक स्प्रिंग। हालांकि यह मार्जिन कि का एक विवरण शामिल करने के लिए बहुत छोटा है वे एक प्राकृतिक उनकी वस्तुओं में EJBs या प्रासंगिक 'EntityManager' इंजेक्षन करने की क्षमता नहीं है, लेकिन यह काफी एक पुल है जो उन्हें ऐसा करने दिया जाएगा निर्माण करने के लिए आसान होना चाहिए, । –

उत्तर

5

से लिया: http://www.oracle.com/technetwork/articles/javaee/injection-141192.html

ध्यान रखें कि एक जावा EE 5 मंच कंटेनर इंजेक्शन पारदर्शी रूप से केवल संभाल कर सकते हैं, जब वे इस तरह के EJB सेम, सर्वलेट वे के रूप में कंटेनर से प्रबंधित घटकों, पर उपयोग किया जाता है, और जावासेवर पेजेस (जेएसपी) प्रौद्योगिकी टैग हैंडलर। http://onjava.com/pub/a/onjava/2006/01/04/dependency-injection-java-ee-5.html

यह एक पठनीय तालिका जिनमें से प्रबंधित-घटक है कि संसाधनों के लिए किस प्रकार के इंजेक्शन का समर्थन (प्रति कंटेनर) प्रस्तुत करता है:

onjava एक लेख है।

+0

मान लीजिए मैं एक EJB (POJO @Stateless साथ एनोटेट) कुछ क्षेत्रों है कि कंटेनर से प्रबंधित घटक हैं है कि है, एक EntityManager @PersistenceContext और अन्य EJB के साथ @ EJB/एनोटेट के साथ एनोटेट कहना अगर मैं इस EJB की कार्यक्षमता का उपयोग करना चाहते एक गैर कंटेनर प्रबंधित कक्षा मैं इसे जेएनडीआई के माध्यम से देख सकता हूं; लेकिन क्या EntityManager और अन्य ईजेबी इंजेक्शन और इस्तेमाल करने के लिए तैयार हो जाएगा? – m3th0dman

+0

मुझे विश्वास है, आप अलग व्यवहार का अनुभव कर रहे हैं? –