मैं जावा में एनोटेशन के उद्देश्य पर अभी भी स्पष्ट नहीं हूं। शुरू में मैंने सोचा कि वे सिर्फ दस्तावेज़ीकरण के रूप में कार्यरत हैं। लेकिन Google App Engine Datastore से इस दस्तावेज़ को देखकर, मुझे पूरा यकीन नहीं है। @PersistenceCapable (IdentType = IdentityType.APPLICATION) एक विधि हस्ताक्षर की तरह दिखता है।ये जावा एनोटेशन क्या काम करते हैं?
इस प्रकार की एनोटेशन का उद्देश्य क्या है? यह क्या करता है?
import java.util.Date;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Employee {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String firstName;
@Persistent
private String lastName;
@Persistent
private Date hireDate;
public Employee(String firstName, String lastName, Date hireDate) {
this.firstName = firstName;
this.lastName = lastName;
this.hireDate = hireDate;
}
// Accessors for the fields. JDO doesn't use these, but your application does.
public Long getId() {
return id;
}
public String getFirstName() {
return firstName;
}
// ... other accessors...
}
ठीक है, तो यह कक्षा, फिर आपके मॉडल को परिभाषित करने का एक शॉर्टेंड तरीका है। पुराने दिनों में, जैसा कि आपने कहा था, आपके पास स्ट्रूट्स में एक कॉन्फ़िगरेशन फ़ाइल हो सकती है जहां आप अपने मॉडल को कॉन्फ़िगर करने के लिए टेक्स्ट नोटेशन का उपयोग करेंगे। लेकिन यहां हम एनोटेशन के साथ एक ही काम कर रहे हैं। और मैं मानता हूं कि एनोटेशन काम आपके द्वारा उपयोग की जा रही लाइब्रेरी के आधार पर भिन्न होता है और कैसे उस लाइब्रेरी ने एनोटेशन को काम करने के लिए परिभाषित किया है। तो, @Persistent का मतलब जेडीओ लाइब्रेरी में एक बात हो सकती है लेकिन किसी अन्य पुस्तकालय में एक और चीज है। – Bijou
हां। उदाहरण के लिए हाइबरनेट में, आप इस कॉन्फ़िगरेशन या जेपीए एनोटेशन करने के लिए या तो .hbm.xml फ़ाइलों का उपयोग कर सकते हैं। लाइब्रेरी के लिए यह अर्ध-आम है कि किसी अन्य द्वारा निर्दिष्ट एनोटेशन का उपयोग करें। इस उदाहरण में, जेडीओ एक जावा विनिर्देश है कि कई पुस्तकालय समर्थन/कार्यान्वित करते हैं। तो यह Google App Engine डेटास्टोर जेडीओ एनोटेशन पढ़ रहा है। हालांकि यह कम आम बात है कि उनके पास एक अलग अर्थ होगा। यह निश्चित रूप से पूरी तरह से संभव है, और प्रोग्रामेटिक रूप से मेटाडेटा (एनोटेशन) के माध्यम से ऐसा करना आसान है (कुछ तरीकों को कॉल करना)। – millimoose