Java에서 주석의 목적에 대해 아직 명확하지 않습니다. 처음에는 나는 그들이 단지 문서로 사용되었다고 생각했다. 그러나이 설명서를 Google App Engine Datastore에서 보면, 나는 그렇게 확신하지 못합니다. @PersistenceCapable (identityType = IdentityType.APPLICATION)은 메소드 서명과 비슷하게 보입니다.이 Java 주석은 어떤 기능을합니까?
이 주석 유형의 목적은 무엇입니까? 그것은 무엇을합니까?
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...
}
이 클래스는 모델을 정의하는 간단한 방법입니다. 예전에는 Struts에서 텍스트 표기법을 사용하여 모델을 구성하는 구성 파일을 만들었을 것입니다. 하지만 여기에서는 주석을 사용하여 동일한 작업을 수행하고 있습니다. 또한 주석의 작동 방식은 사용중인 라이브러리와 해당 라이브러리가 주석을 어떻게 정의했는지에 따라 달라집니다. 따라서 @Persistent는 JDO 라이브러리에서 하나의 것을 의미하지만 다른 라이브러리에서는 또 다른 것을 의미 할 수 있습니다. – Bijou
예. 예를 들어 Hibernate에서 .hbm.xml 파일을 사용하여이 구성을 수행하거나 JPA 주석을 사용할 수 있습니다. 라이브러리에서 다른 주석으로 지정된 주석을 사용하는 것은 일반적입니다. 이 예에서 JDO는 여러 라이브러리가 지원/구현하는 Java 사양입니다. JDO 주석을 읽는 것은 Google App Engine 데이터 저장소입니다. 그들은 서로 다른 의미를 가지지는 않는 경우가 일반적입니다. 물론 전적으로 가능하며, 메타 데이터 (주석)를 프로그래밍 방식 (일부 메소드 호출)보다 쉽게 수행 할 수 있습니다. – millimoose