2009-07-22 22 views
7

क्या किसी के पास कोई भी उदाहरण है कि जावा क्लास POJO, EJB, और EJB 3 जैसा दिख सकता है? मैं इन जावा प्रौद्योगिकियों को समझने की कोशिश कर रहा हूं लेकिन मुझे परेशानी हो रही है। मैं उम्मीद कर रहा था कि इससे मदद मिलेगी अगर मैं देख सकूं कि तीनों का कार्यान्वयन कैसा दिखता है।POJO बनाम ईजेबी बनाम ईजेबी 3

उत्तर

5

के माध्यम से: http://swik.net/POJO+ejb3

EJB3 संस्थाओं सादा POJOs हैं। असल में वे हाइबरनेट लगातार संस्थाओं के समान सटीक अवधारणा का प्रतिनिधित्व करते हैं। उनके मैपिंग को जेडीके 5.0 एनोटेशन के माध्यम से परिभाषित किया गया है (ओवरराइडिंग के लिए एक्सएमएल डिस्क्रिप्टर सिंटैक्स ईजेबी 3 विनिर्देश में परिभाषित किया गया है)। एनोटेशन को दो श्रेणियों में विभाजित किया जा सकता है, लॉजिकल मैपिंग एनोटेशन (आपको ऑब्जेक्ट मॉडल, क्लास एसोसिएशन इत्यादि का वर्णन करने की अनुमति देता है) और भौतिक मैपिंग एनोटेशन (भौतिक स्कीमा, टेबल, कॉलम, इंडेक्स इत्यादि का वर्णन)। हम निम्नलिखित कोड उदाहरणों में दोनों श्रेणियों से एनोटेशन मिश्रण करेंगे। ईजेबी 3 एनोटेशन javax.persistence में हैं। * पैकेज। अधिकांश जेडीके 5 अनुपालन आईडीई (जैसे एक्लिप्स, इंटेलिजे आईडीईए और नेटबीन्स) आपके लिए एनोटेशन इंटरफेस और विशेषताओं को स्वत: पूर्ण कर सकते हैं (यहां तक ​​कि एक विशिष्ट "ईजेबी 3" मॉड्यूल के बिना, क्योंकि ईजेबी 3 एनोटेशन सादे जेडीके 5 एनोटेशन हैं)।

उदाहरण के लिए

: http://www.laliluna.de/ejb-3-tutorial-jboss.html

@Entity 
@Table(name="book") 
@SequenceGenerator(name = "book_sequence", sequenceName = "book_id_seq") 
public class Book implements Serializable { 

इकाई को परिभाषित करता है कि यह एक इकाई सेम है। दूसरा तालिका नाम परिभाषित करता है। अंतिम एक अनुक्रम जनरेटर परिभाषित करता है।

+0

swik.net लिंक मृत लगता है जिम – MonoThreaded

+0

@ b0x0rz यह http://swik.net/POJO+ejb3 काम नहीं कर रहा है, सर्वर दिखा रहा है। वैकल्पिक कामकाजी लिंक के साथ इसे अद्यतन करें। – OO7

4

POJO

public class Person { 

    private String name; 
    private int age; 

    public Person() { 
    } 

    public Person(String name, int age) { 
     this.name = name; 
     this.age = age; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getName() { 
     return name; 
    } 

    // setter & getter for age omitted 

    public String toString() { 
     return "Person " + name; 
    } 

} 

यह एक EJB3 के रूप में भी इस्तेमाल किया जा सकता।

EJB2 कृपया भूल जाते हैं कि यह मौजूद है और यह पर किसी भी समय निवेश नहीं करते हैं जब तक आप पूरी तरह से (उदाहरण, विरासत कोड पर काम) करने के लिए है के बारे में

8

POJO सादा-पुरानी-जावा-ऑब्जेक्ट के लिए खड़ा है - पुरानी प्रौद्योगिकियों के विपरीत एक सामान्य जावा क्लास जिसे कक्षा को अपने ढांचे के साथ काम करने के लिए विशिष्ट तरीकों से बदलने की आवश्यकता होती है।

class MyService { 

    public String sayHello() { return "hello world"; } 

} 

जैसे पीओजेओ का उपयोग कहीं भी किया जा सकता है, सामान्य वर्ग का उपयोग किया जा सकता है। हालांकि यदि आप उनमें से एक एंटरप्राइज़ एप्लिकेशन बनाना चाहते हैं तो आपको अभी भी कुछ ढांचे की आवश्यकता है - Spring एक ढांचे का एक अच्छा उदाहरण है जो सीधे पीओजेओ के साथ काम कर सकता है।

ईजेबी 2 अब प्रासंगिक नहीं है, इसलिए आप इसे अनदेखा कर सकते हैं - जब तक कि आपको कुछ विरासत कोड बनाए रखने की आवश्यकता न हो। अपनी जिज्ञासा को पूरा करने के लिए उपर्युक्त उदाहरण के लिए कई वर्गों और एक्सएमएल डिस्क्रिप्टरों को चलाने के लिए आवश्यकता होगी - यह देखना आसान है कि यह अप्रचलित क्यों हुआ।

EJB3 उद्यम अनुप्रयोगों जो EJB2 बदल देता है और POJOs लेने और उन्हें व्याख्या इतना है कि वे उद्यम अनुप्रयोग में इस्तेमाल किया जा सकता की अवधारणा पर आधारित है विकसित करने के लिए नवीनतम मानक है।

@Stateless 
class MyService { 
    public String sayHello() { return "hello world"; } 
} 

जैसा कि आप देख सकते हैं कि यह पीओजेओ के समान है। वास्तव में ईजेबी 3 के लिए लिखे गए अधिकांश आवेदन आसानी से वसंत के साथ काम में परिवर्तित हो सकते हैं, और आमतौर पर अन्य तरीके भी काम करता है।

1

ऊपर वर्णित इस वर्ग (@ स्टेटलेस क्लास माईस सर्विस) पीओजेओ के समान है, यह परंपरागत रूप से निश्चित POJO नहीं है क्योंकि इसकी javax.ejb पैकेज पर निर्भरता है। मेरी इच्छा है कि यह निर्भरता आवश्यक होने के बजाय नरम संदर्भ (डीबी अवधारणा) की तरह ही हो। इस आलेख में इस बारे में कुछ विचारों का उल्लेख किया गया है: How to Fix Java POJO Annotations

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