अभी तक, मैं लगभग हमेशा इंटरफ़ेस ईजेबी के साथ काम करता हूं और @ लोकल एनोटेशन की आवश्यकता के बारे में थोड़ा सा समझता हूं।ईजेबी 3.1। क्या @ लोकल एनोटेशन की आवश्यकता है?
public interface MyBeanIntf { void doStuff(); }
@Stateless
public class MyBean implements MyBeanIntf { public void doStuff(){ } }
MyBeanIntf
@Local
के रूप में चिह्नित किया जाना चाहिए: इस उदाहरण पर विचार? मैं, कि से कोई लाभ नहीं दिख रहा है क्योंकि यहां तक कि जब मैं @Local
के रूप में उस पर टिप्पणी नहीं करते हैं, मैं अभी भी डि उपयोग कर सकते हैं ठीक से यूआई नियंत्रक को इसकी सुई देने:
@Named
@SessionScoped
public class TestController implements Serializable {
// injection works perfectly, even when MyBeanIntf is not marked as @Local
@Inject
private MyBeanIntf myBean;
// or even like this:
// @EJB
// private MyBeanIntf myBean;
}
की यह अधिक जटिल बना डालते हैं:
public interface MyBeanIntf { void doStuff(); }
public class MySuperBean implements MyBeanIntf { public void doStuff() { } }
@Stateless
public class MyBean extends MySuperBean { }
MyBean
अब एक वैध Local EJB
सेम माना जाता है? मुझे कुछ संदेह हैं क्योंकि यह अप्रत्यक्ष रूप से इंटरफेस लागू करता है।
उत्तर के लिए धन्यवाद। विनिर्देश के लिंक के लिए, मुझे अभी भी कुछ संदेह हैं। यह सुपरक्लास को स्पष्ट रूप से चर्चा करता है, जो स्वयं सत्र बीन्स हैं। लेकिन क्या होगा यदि वे 'स्टेटलेस' या 'स्टेटफुल' एनोटेशन के बिना सिर्फ अमूर्त वर्ग हैं? – jFrenetic
निश्चित रूप से, मुझे इसके बारे में 100% में यकीन नहीं है, लेकिन संपादित पोस्ट पर एक नज़र डालें - शायद यह मदद करेगा। –
जोर के लिए धन्यवाद। मैंने खुद को उस भाग में पढ़ा, लेकिन किसी भी तरह से इसे याद किया। – jFrenetic