2012-04-11 12 views
5

में एनोटेशन बदलना हम जेबॉस सीम से सीडीआई (जेईई 6) तक हमारी ऐप माइग्रेट कर रहे हैं, इसलिए हम @ एन और @ ओट जैसे कुछ एनोटेशन बदल रहे हैं, वहां बहुत सारी जानकारी है जो हमें उपयोगी मिली है , लेकिन हम कुछ मुसीबतों पता लगाने के लिए विशेष नमूनों के साथ एनोटेशन बदलने का प्रयास करने के लिए है:जेबॉस सीम से सीडीआई (जेईई 6)

@In एनोटेशन के लिए

@Name("comprobantes")//context name 
... 
@In(create=false,value="autenticadoPOJO",required=false) 
    private UsuarioPOJO autenticadoPOJO; 

हम CDI से @Inject उपयोग कर सकते हैं, लेकिन कैसे संदर्भ के नाम सेट करने के लिए इस मामले के लिए चर?

@Out एनोटेशन

@Out(scope = ScopeType.SESSION, value = "autenticadoPOJO", required = false) 

मैं कुछ ब्लॉगों पढ़ लिया है और वे कहते हैं कि मैं CDI में @Produces उपयोग कर सकते हैं, हम कैसे से पहले या इस एनोटेशन जोड़ने के बाद गुंजाइश, सेट कर सकते हैं के लिए?

मैं किसी भी मदद या किसी भी उपयोगी दस्तावेज़ की सराहना करता हूं।

उत्तर

2

http://docs.jboss.org/weld/reference/1.0.0/en-US/html/producermethods.html

8,1। एक निर्माता विधि का दायरा

निर्माता विधि का दायरा @ पर निर्भर करता है, और इसलिए जब भी कंटेनर इस क्षेत्र या किसी अन्य उत्पाद को इंजेक्ट करता है जो एक ही उत्पादक विधि को हल करता है। इस प्रकार, प्रत्येक उपयोगकर्ता सत्र के लिए PaymentStrategy ऑब्जेक्ट के कई उदाहरण हो सकते हैं।

इस व्यवहार को बदलने के लिए, हम विधि में @ सत्र स्कोप्ड एनोटेशन जोड़ सकते हैं। @Out के लिए 1 अनुकूलता:

@Produces @Preferred @SessionScoped 
public PaymentStrategy getPaymentStrategy() { 
    ... 
} 
+0

आप https://github.com/seam/migration मिल सकता है, कि रेपो और अन्य फ़ाइलों के लिए विकी पूछने के लिए स्वतंत्र महसूस हो रहा है उपयोगी। – LightGuard

3

मुझे डर लग रहा एक 1 की तरह ऐसी कोई बात नहीं है।

तकनीकी रूप से, सीम 2 में @Out सभी विधि आमंत्रणों के लिए एक इंटरसेप्टर द्वारा महसूस किया गया था - यह काफी प्रदर्शन बाधा साबित हुआ।

सीडीआई में, अधिकांश प्रबंधित सेम प्रक्षेपित होते हैं, इससे सीम 2 तरीके में निष्कासन को लागू करना तकनीकी रूप से असंभव हो जाता है।

आप क्या कर सकते हैं (ठीक है, क्या आप वास्तव में करना करना होता है) @Out के सभी प्रयोगों से गुजर रहा है और यह व्यक्तिगत रूप से की जगह कुछ @Producer तर्क के साथ। यहां this official example पर एक नज़र डालें। सीम 2 में, आप प्रमाणित उपयोगकर्ता को सत्र-स्कोप में आउट कर चुके होंगे, सीडीआई में एक छोटी उत्पादक विधि (लगभग) समान होती है।

कि उम्मीद है कि आप एक अच्छी शुरुआत देना चाहिए, उसमें होने के लिए आगे के प्रश्न :)

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