अगर मैं एक अनुरोध scoped CDI सेम JMS का उपयोग कर एक @MessageDriven
EJB में इंजेक्शन, नीचे के रूप में, मैं यह मान सकते हैं कि किसी भी Foo
उदाहरण एक बार में केवल एक एकल onMessage
मंगलाचरण द्वारा उपयोग किया जाएगा है ?@MessageDriven सेम में @RequestScoped CDI इंजेक्शन
दूसरे शब्दों में, नीचे दिए गए उदाहरण में, मैं सुरक्षित रूप से सदस्य चर Foo
वस्तु में एक JSF @RequestScoped
कामयाब सेम को सबरूटीन्स भर में राज्य स्टोर करने के लिए, तुलनात्मक रूप से उपयोग कर सकते हैं?
ध्यान दें कि यह ठीक है अगर एक ही Foo
वस्तु अगले करने के लिए एक onMessage
कॉल से क्रमिक रूप से पुनर्नवीनीकरण हो जाता है, जब तक प्रत्येक MessageDrivenBean
उदाहरण अपने आप ही Foo
उदाहरण ऐसा है कि दो अनुरोध प्रसंस्करण समवर्ती पृथक किया जाएगा के रूप में।
@MessageDriven
public class MessageDrivenBean implements MessageListener {
@Inject
private Foo foo;
public void onMessage(Message m) {
foo.doSomething();
}
}
@Named
@RequestScoped
public class Foo {
private String property;
public void doSomething() {
property = ...;
}
}
बहुत बढ़िया। यही वही है जो मैं उम्मीद कर रहा था, और मैंने इंजेक्शन ऑब्जेक्ट पर एक उदाहरण काउंटर डालने की पुष्टि की। (यह पहले ऐसा नहीं कर रहा था और यह निकला कि मैंने सही javax.enterprise के बजाय javax.faces से '@ RequestScoped' एनोटेशन आयात किया है।) – wrschneider